home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ShareWare OnLine 2
/
ShareWare OnLine Volume 2 (CMS Software)(1993).iso
/
prog
/
inter35b.zip
/
INTERRUP.H
< prev
next >
Wrap
Text File
|
1993-06-05
|
295KB
|
8,021 lines
Interrupt List, part 8 of 9
This compilation is Copyright (c) 1989,1990,1991,1992,1993 Ralf Brown
--------N-50---------------------------------
INT 50 - TIL Xpert AIM (X.25)
AH = function
--------H-50---------------------------------
INT 50 - IRQ0 relocated by DESQview
Notes: this is the default location for older versions; DESQview v2.26+
searches for unused ranges of interrupts and uses the lowest
available range in its list for relocating these IRQs and the next
lowest for relocating IRQ8-IRQ15
a range of eight interrupts starting at a multiple of 8 is considered
available if all vectors are identical and it has not been excluded
with an /XB:nn commandline switch
the list of ranges for v2.26 is 50h,58h,68h,78h,F8h (if < two of these
are available, F8h and then 50h are used anyway)
the list of ranges for v2.31+ is 68h,78h,88h-B8h,F8h (if < two of these
are available, F8h and then F0h are used anyway)
SeeAlso: INT 08"IRQ0",INT 51"DESQview",INT 54"DESQview",INT 58"DESQview"
SeeAlso: INT D8"Screen Thief"
--------H-50---------------------------------
INT 50 - IRQ0 relocated by IBM 3278 emulation control program
SeeAlso: INT 51"IBM 3278"
--------H-50---------------------------------
INT 50 - IRQ0 relocated by OS/2 v1.x
SeeAlso: INT 51"OS/2"
--------V-500000-----------------------------
INT 50 - Vanderaart TEXT WINDOWS, PC Thuis Shell - OPEN TEXT WINDOW
AX = 0000h
ES:BX -> name string or ES:0000h if none
CH,CL = row,column of upper left corner
DH,DL = row,column of lower right corner
Return: AX = window handle or
0000h if not installed
FFFFh on error
SeeAlso: AX=0001h,AX=0002h"TEXT WINDOWS"
--------V-500001-----------------------------
INT 50 - Vanderaart TEXT WINDOWS, PC Thuis Shell - CLOSE TEXT WINDOW
AX = 0001h
DI = window handle
SeeAlso: AX=0000h
--------V-500002-----------------------------
INT 50 - Vanderaart TEXT WINDOWS - PUT CHARACTER IN WINDOW
AX = 0002h
BL = character
BH = attribute
DL = column
DH = row
DI = window handle
Return: AX = status
0000h if successful
FFFFh if outside window
SeeAlso: AX=0000h
--------l-500002-----------------------------
INT 50 - PC Thuis Organizer Shell - PLOT TEXT
AX = 0002h
ES:BX -> text string
DH,DL = row,column of upper left corner
DI = window handle
Return: AX = status
0000h successful (text fits in window)
FFFFh error
Program: The PC Thuis Organizer Shell was written by John Vanderaart and
published in the June/July 1990 issue of PC Thuis Power magazine
--------V-500003-----------------------------
INT 50 - Vanderaart TEXT WINDOWS - OUTPUT LINE TO WINDOW
AX = 0003h
ES:BX -> text string
CX = string length (0000h if ASCIZ string)
DL = position (FFh centered, else flush left)
DH = starting row
DI = window handle
Return: AX = status
0000h successful
FFFFh did not fit in window
--------l-500003-----------------------------
INT 50 - PC Thuis Organizer Shell - WRITE FILE
AX = 0003h
ES:BX -> data to be written
CX = number of bytes to write
DS:SI -> filename
Return: AX = status
0000h successful
FFFFh error
SeeAlso: AX=0004h"Shell"
--------V-500004-----------------------------
INT 50 - Vanderaart TEXT WINDOWS - GET KEY
AX = 0004h
CH = type
00h any key
01h 'J' or 'N' (Dutch for yes/no)
Return: AX = key
SeeAlso: INT 16/AH=00h
--------l-500004-----------------------------
INT 50 - PC Thuis Organizer Shell - READ FILE
AX = 0004h
ES:BX -> buffer for data
CX = number of bytes to read or 0000h for entire file
DL = file type
01h setting shell
02h setting sterm
03h INT21 file
DS:SI -> filename
Return: AX = status
0000h successful
FFFFh error
Note: file type numbers are maintained by John Vanderaart; if a new file type
is needed, a type number should be requested from him through the
magazine:
PC Thuis BV
Spaarne 55
2011 CE HAARLEM
The Netherlands
SeeAlso: AX=0003h"Shell"
--------V-500005-----------------------------
INT 50 - Vanderaart TEXT WINDOWS - CHANGE ATTRIBUTE
AX = 0005h
BL = new attribute
CH,CL = row,column of upper left corner
DH,DL = row,column of lower right corner
DI = window handle
--------l-500005-----------------------------
INT 50 - PC Thuis Organizer Shell - PROMPT YES/NO
AX = 0005h
ES:BX -> prompt string (ES:0000h if no prompt)
Return: AX = key pressed
0000h "J" (Dutch "Ja" = "Yes")
FFFFh "N" (Dutch "Nee" = "No")
Program: The PC Thuis Organizer Shell was written by John Vanderaart and
published in the June/July 1990 issue of PC Thuis Power magazine
--------V-500006-----------------------------
INT 50 - Vanderaart TEXT WINDOWS - EDIT LINE IN WINDOW
AX = 0006h
ES:BX -> text string
CH = type
00h everything
01h uppercase only
02h positive numbers
03h Dutch postal code ("9999 AA")
04h 'J' or 'N' (Dutch yes/no)
05h telephone or FAX number
06h positive or negative number
07h date (dd/mm/yy)
08h money
09h '1' through '8'
0Ah '1' through '4'
0Bh uppercase filenames
DH,DL = row,column of upper left corner
DI = window handle
Return: AX = key which terminated entry
0000h Enter
0001h Esc
0002h Down arrow
0003h Up arrow
0004h F10
--------l-500006-----------------------------
INT 50 - PC Thuis Organizer Shell - ALERT USER
AX = 0006h
ES:BX -> string
--------l-500007-----------------------------
INT 50 - PC Thuis Organizer Shell - DO LINE
AX = 0007h
ES:BX -> text string
CX = string length in bytes (0000h if NUL-terminated)
DL = FFh to center string, else flush left
DH = upper left row
DI = window handle
Return: AX = status
0000h successful
FFFFh error
Program: The PC Thuis Organizer Shell was written by John Vanderaart and
published in the June/July 1990 issue of PC Thuis Power magazine
--------l-500008-----------------------------
INT 50 - PC Thuis Organizer Shell - DO MENU
AX = 0008h
ES:BX -> menu structure
Return: AL = index 1 or FFh if not selected
AH = index 2 or FFh if not selected
BL = index 3 or FFh if not selected
BH = index 4 or FFh if not selected
SeeAlso: AX=000Ch
--------l-500009-----------------------------
INT 50 - PC Thuis Organizer Shell - MESSAGE ON
AX = 0009h
ES:BX -> message string
SeeAlso: AX=000Ah
--------l-50000A-----------------------------
INT 50 - PC Thuis Organizer Shell - MESSAGE OFF
AX = 000Ah
SeeAlso: AX=0009h
--------l-50000B-----------------------------
INT 50 - PC Thuis Organizer Shell - CHANGE ATTRIBUTE
AX = 000Bh
BL = new attribute
CH,CL = row,column of upper left corner
DH,DL = row,column of lower right corner
DI = window handle
--------l-50000C-----------------------------
INT 50 - PC Thuis Organizer Shell - DO REQUEST
AX = 000Ch
ES:BX -> request structure
Return: AX = status
0000h confirmed
FFFFh denied
SeeAlso: AX=0008h
--------l-50000D-----------------------------
INT 50 - PC Thuis Organizer Shell - EDIT LINE
AX = 000Dh
ES:BX -> text string
CL = length
CH = type
bit 0: force uppercase
bit 1: integer
bit 2: no spaces allowed
bit 3: no cursor keys
DH,DL = row,column of upper left corner
DI = window handle
Return: AX = result code
Program: The PC Thuis Organizer Shell was written by John Vanderaart and
published in the June/July 1990 issue of PC Thuis Power magazine
--------l-50000E-----------------------------
INT 50 - PC Thuis Organizer Shell - PLOT CHARACTER
AX = 000Eh
BL = character
BH = attribute
DH,DL = row,column at which to plot
DI = window handle
Return: AX = status
0000h successful
FFFFh errror
--------l-50000F-----------------------------
INT 50 - PC Thuis Organizer Shell - EMPTY WINDOW
AX = 000Fh
BL = character
BH = attribute
DI = window handle
--------l-500010-----------------------------
INT 50 - PC Thuis Organizer Shell - TRACE MENU
AX = 0010h
ES:BX -> first menu structure
CL = hotkey to look up
Return: AL = index 1 or FFh if not selected
AH = index 2 or FFh if not selected
BL = index 3 or FFh if not selected
BH = index 4 or FFh if not selected
--------l-500011-----------------------------
INT 50 - PC Thuis Organizer Shell - MOVE MEMORY
AX = 0011h
DS:SI -> source
ES:DI -> destination
CX = number of bytes to move (0000h = until NUL string terminator???)
SeeAlso: AX=0012h
--------l-500012-----------------------------
INT 50 - PC Thuis Organizer Shell - COMPARE MEMORY
AX = 0012h
DS:SI -> source
ES:DI -> destination
CX = number of bytes to compare (0000h=until NUL string terminator???)
Return: AX = status
0000h same
FFFFh different
SeeAlso: AX=0011h
--------l-500013-----------------------------
INT 50 - PC Thuis Organizer Shell - GET KEY
AX = 0013h
CH = type flags
bit 0: force uppercase
bit 1: integer
bit 2: no spaces
Return: AX = keystroke
--------l-500014-----------------------------
INT 50 - PC Thuis Organizer Shell - SCROLL WINDOW
AX = 0014h
BL = direction
06h up
07h down
BH = attribute
DI = window handle
SeeAlso: INT 10/AH=06h,INT 10/AH=07h
--------l-500015-----------------------------
INT 50 - PC Thuis Organizer Shell - GET MEMORY HANDLE
AX = 0015h
BL = handle size
00h 65536 bytes (64K)
01h 65535 bytes (64K-1)
02h 32768 bytes (32K)
03h 32767 bytes (32K-1)
Return: AX = segment
Program: The PC Thuis Organizer Shell was written by John Vanderaart and
published in the June/July 1990 issue of PC Thuis Power magazine
SeeAlso: INT 21/AH=48h
--------H-51---------------------------------
INT 51 - IRQ1 relocated by DESQview
Note: this is the default location for older versions; see INT 50"DESQview"
for details of interrupt relocation
SeeAlso: INT 50"DESQview",INT 54"DESQview",INT 58"DESQview"
--------H-51---------------------------------
INT 51 - IRQ1 relocated by IBM 3278 emulation control program
SeeAlso: INT 50"IBM 3278",INT 54"IBM 3278"
--------H-51---------------------------------
INT 51 - IRQ1 relocated by OS/2 v1.x
SeeAlso: INT 50"OS/2",INT 54"OS/2"
--------H-52---------------------------------
INT 52 - IRQ2 relocated by DESQview
Note: this is the default location for older versions; see INT 50"DESQview"
for details of interrupt relocation
SeeAlso: INT 50"DESQview",INT 54"DESQview",INT 58"DESQview"
--------H-52---------------------------------
INT 52 - IRQ2 relocated by IBM 3278 emulation control program, OS/2 v1.x
SeeAlso: INT 50"IBM 3278",INT 51"OS/2"
--------H-53---------------------------------
INT 53 - IRQ3 relocated by DESQview
Note: this is the default location for older versions; see INT 50"DESQview"
for details of interrupt relocation
SeeAlso: INT 50"DESQview",INT 54"DESQview",INT 58"DESQview"
--------H-53---------------------------------
INT 53 - IRQ3 relocated by IBM 3278 emulation control program, OS/2 v1.x
SeeAlso: INT 50"IBM 3278",INT 51"OS/2"
----------53---------------------------------
INT 53 - ??? - API
BX = function
0000h ???
AX = ???
Return: AX = ???
0004h ???
0009h ???
0015h
AX = ???
DX = ???
0017h
Return: ???
Notes: the installation check consists of looking for the signature "WEBCO"
immediately prior to the interrupt handler
the above calls are made by Show Partner F/X v3.6 (see INT 10/AH=53h)
Index: installation check;unknown|installation check;WEBCO
--------H-54---------------------------------
INT 54 - IRQ4 relocated by DESQview
Note: this is the default location for older versions; see INT 50"DESQview"
for details of interrupt relocation
SeeAlso: INT 50"DESQview",INT 58"DESQview"
--------H-54---------------------------------
INT 54 - IRQ4 relocated by IBM 3278 emulation control program, OS/2 v1.x
SeeAlso: INT 51"IBM 3278",INT 51"OS/2"
--------H-55---------------------------------
INT 55 - IRQ5 relocated by DESQview
Note: this is the default location for older versions; see INT 50"DESQview"
for details of interrupt relocation
SeeAlso: INT 50"DESQview",INT 58"DESQview"
--------H-55---------------------------------
INT 55 - IRQ5 relocated by IBM 3278 emulation control program, OS/2 v1.x
SeeAlso: INT 51"IBM 3278",INT 51"OS/2"
--------H-56---------------------------------
INT 56 - IRQ6 relocated by DESQview
Note: this is the default location for older versions; see INT 50"DESQview"
for details of interrupt relocation
SeeAlso: INT 50"DESQview",INT 58"DESQview"
--------H-56---------------------------------
INT 56 - IRQ6 relocated by IBM 3278 emulation control program, OS/2 v1.x
SeeAlso: INT 51"IBM 3278",INT 51"OS/2"
--------H-57---------------------------------
INT 57 - IRQ7 relocated by DESQview
Note: this is the default location for older versions; see INT 50"DESQview"
for details of interrupt relocation
SeeAlso: INT 50"DESQview",INT 58"DESQview"
--------H-57---------------------------------
INT 57 - IRQ7 relocated by IBM 3278 emulation control program, OS/2 v1.x
SeeAlso: INT 51"IBM 3278",INT 51"OS/2"
--------H-58---------------------------------
INT 58 - IRQ8 relocated by DESQview 2.26+
Note: this is the default, but other INTs may be used (see INT 50"DESQview")
SeeAlso: INT 50"DESQview",INT 70
--------H-58---------------------------------
INT 58 - IRQ0 relocated by DoubleDOS
SeeAlso: INT 08
--------H-59---------------------------------
INT 59 - IRQ9 relocated by DESQview 2.26+
Note: this is the default, but other INTs may be used (see INT 50"DESQview")
SeeAlso: INT 50"DESQview",INT 71
--------H-59---------------------------------
INT 59 - IRQ1 relocated by DoubleDOS
SeeAlso: INT 09
--------V-59---------------------------------
INT 59 - GSS Computer Graphics Interface (GSS*CGI)
DS:DX -> block of 5 array pointers
Return: CF set on error
AX = error code
CF clear if successful
AX = return code
Note: INT 59 is the means by which GSS*CGI language bindings communicate with
GSS*CGI device drivers and the GSS*CGI device driver controller.
also used by the IBM Graphic Development Toolkit
--------H-5A---------------------------------
INT 5A - IRQ10 relocated by DESQview 2.26+
Note: this is the default, but other INTs may be used (see INT 50"DESQview")
SeeAlso: INT 50"DESQview",INT 72
--------H-5A---------------------------------
INT 5A - IRQ2 relocated by DoubleDOS
SeeAlso: INT 0A
--------N-5A---------------------------------
INT 5A - Cluster adapter BIOS entry address
???
--------H-5B---------------------------------
INT 5B - IRQ11 relocated by DESQview 2.26+
Note: this is the default, but other INTs may be used (see INT 50"DESQview")
SeeAlso: INT 50"DESQview",INT 73
--------H-5B---------------------------------
INT 5B - IRQ3 relocated by DoubleDOS
SeeAlso: INT 0B
--------N-5B---------------------------------
INT 5B - Used by cluster adapter
--------N-5B---------------------------------
INT 5B - AT&T Starlan Extended NetBIOS (variable length names)
ES:BX -> Network Control Block (see below)
Return: AL = status (see INT 5C)
SeeAlso: INT 5C
Format of Network Control Block
Offset Size Description
00h BYTE ncb_command (see below)
01h BYTE ncb_retcode
02h BYTE ncb_lsn
03h BYTE ncb_num
04h DWORD -> ncb_buffer
08h WORD ncb_length
0Ah 16 BYTEs ncb_callname
1Ah 16 BYTEs ncb_name
2Ah BYTE ncb_rto
2Bh BYTE ncb_sto
2Ch DWORD -> ncb_post /* int (far *ncb_post)(); */
30h BYTE ncb_lana_num
31h BYTE ncb_cmd_cplt
32h DWORD -> ncb_vname
36h BYTE ncb_vnamelen
37h 9 BYTEs ncb_reserve
Note: fields 00h-31h are the same as for a standard NetBIOS NCB (see INT 5C)
Values for ncb_command field same as for INT 5C, except
70h send net Break
--------N-5B---------------------------------
INT 5B - Microsoft Network Transport Layer Interface
Note: used by MS-NET for executing network commands
SeeAlso: INT 5C"NetBIOS"
--------N-5B---------------------------------
INT 5B - used by Alloy NTNX
--------N-5B---------------------------------
INT 5B - ISOLAN Multi Protocol Software
ES:BX -> Transfer Control Block
Return: AL - status
Note: this software interface allows multiple protocols/software packages
to access a BICC 411x network card
Format of Transfer Control Block:
Offset Type Description
00h BYTE command code
B3h Status
F2h Activate
F3h Deactivate
F4h Send Data
01h BYTE command identity
02h BYTE virtual circuit ID
03h WORD buffer length
05h DWORD buffer pointer
09h BYTE expedited data flag
0Ah BYTE cancelable flag
0Bh 16 BYTEs local network address
1Bh 16 BYTEs remote network address
2Bh DWORD asynchronous notification routine
30h DWORD local network number
34h DWORD remote network number
38h BYTE call timeout
39h BYTE not used
3Ah 8 BYTEs reserved
42h BYTE command code extension
43h WORD Blue Book MAC type
----------5B5254DL04-------------------------
INT 5B U - SitBack v3.02R - GET ???
AX = 5254h
DL = 04h
Return: ES:BX -> ??? in resident portion
Program: SitBack is a background file backup utility by SitBack Technologies,
Inc. which initiates backups whenever the system is idle
SeeAlso: AX=8485h/DL=71h,AX=8485h/DL=72h
----------5B8485DL70-------------------------
INT 5B U - SitBack v3.02R - INSTALLATION CHECK
AX = 8485h
DL = 70h
Return: CX = 8485h if installed
DX:AX -> ??? (configuration data?)
Program: SitBack is a background file backup utility by SitBack Technologies,
Inc. which initiates backups whenever the system is idle
SeeAlso: AX=5254h/DL=04h,AX=8485h/DL=78h
----------5B8485DL71-------------------------
INT 5B U - SitBack v3.02R - SET ??? FLAG AND GET ??? ADDRESS
AX = 8485h
DL = 71h
Return: ES:BX -> FAR entry point to ???
Note: the flag which is modified is located at the address returned by
AX=5254h/DL=04h
SeeAlso: AX=8485h/DL=72h
----------5B8485DL72-------------------------
INT 5B U - SitBack v3.02R - CLEAR ??? FLAG
AX = 8485h
DL = 72h
Note: the flag which is modified is located at the address returned by
AX=5254h/DL=04h
SeeAlso: AX=8485h/DL=71h
----------5B8485DL73-------------------------
INT 5B U - SitBack v3.02R - ???
AX = 8485h
DL = 73h
???
Return: ???
----------5B8485DL74-------------------------
INT 5B U - SitBack v3.02R - ???
AX = 8485h
DL = 74h
???
Return: ???
----------5B8485DL75-------------------------
INT 5B U - SitBack v3.02R - ???
AX = 8485h
DL = 75h
CX = ???
Return: ???
SeeAlso: AX=8485h/DL=76h
----------5B8485DL76-------------------------
INT 5B U - SitBack v3.02R - ???
AX = 8485h
DL = 76h
CX = ???
Return: ???
Note: conditionally calls the code for AX=8485h/DL=75h
SeeAlso: AX=8485h/DL=75h
----------5B8485DL77-------------------------
INT 5B U - SitBack v3.02R - SET ??? FLAG
AX = 8485h
DL = 77h
----------5B8485DL78-------------------------
INT 5B U - SitBack v3.02R - GET RESIDENT DATA SEGMENT
AX = 8485h
DL = 78h
Return: CX = 5342h if supported
ES = AX = segment of TSR data
SeeAlso: AX=8485h/DL=70h,AX=8485h/DL=79h
----------5B8485DL79-------------------------
INT 5B U - SitBack v3.02R - GET DTA
AX = 8485h
DL = 79h
Return: CX = 5342h if supported
ES:BX -> DTA set by last INT 21/AH=1Ah
Note: this function is provided by SBOS.EXE rather than SB.EXE
SeeAlso: INT 21/AH=1Ah
----------5B8485DL7A-------------------------
INT 5B U - SitBack v3.02R - TOGGLE ???
AX = 8485h
DL = 7Ah
Return: CX = 5342h if supported
AL = new value of ??? (00h or 01h)
--------H-5C---------------------------------
INT 5C - IRQ12 relocated by DESQview 2.26+
Note: this is the default, but other INTs may be used (see INT 50"DESQview")
SeeAlso: INT 50"DESQview",INT 74
--------H-5C---------------------------------
INT 5C - IRQ4 relocated by DoubleDOS
SeeAlso: INT 0C
--------N-5C---------------------------------
INT 5C - NetBIOS INTERFACE
ES:BX -> network control block (NCB) (see below)
Return: AL = status (see below)
Note: Sytek PCnet card uses DMA 3.
SeeAlso: INT 2A/AH=01h,INT 2A/AH=04h,INT 5B
Values for NetBIOS status:
00h successful
01h bad buffer size
03h invalid NETBIOS command
05h timeout
06h receive buffer too small
07h No-ACK command failed
08h bad session number
09h LAN card out of memory
0Ah session closed
0Bh command has been cancelled
0Dh name already exists
0Eh local name table full
0Fh name still in use, can't delete
11h local session table full
12h remote PC not listening
13h bad NCB_NUM field
14h no answer to CALL or no such remote
15h name not in local name table
16h duplicate name
17h bad delete
18h abnormal end
19h name error, multiple identical names in use
1Ah bad packet
21h network card busy
22h too many commands queued
23h bad LAN card number
24h command finished while cancelling
26h command can't be cancelled
30h name defined by another process (OS/2)
34h NetBIOS environment not defined, must issue reset (OS/2)
35h required operating system resources exhausted (OS/2)
36h maximum applications exceeded (OS/2)
37h no SAPs available for NetBIOS (OS/2)
38h requested resources not available (OS/2)
40h Lana System Error
41h Lana Remote Hot Carrier
42h Lana Local Hot Carrier
43h Lana No Carrier Detected
44h unusual network condition
45h-4Dh hardware error
4Eh token ring is broken
4Fh token ring error
50h adapter malfunction
F7h error in explicit INITIALIZE
F8h error in implicit OPEN
F9h TOKREUI internal error
FAh hardware adapter testing
FBh NetBIOS emulator not found
FCh OPEN or OPEN_SAP failure
FDh unexpected adapter closure
FFh NetBIOS busy (command pending)
Format of Network Control Block:
Offset Size Description
00h BYTE command code (see below)
01h BYTE return code
02h BYTE local session number (LSN)
03h BYTE "ncb_num" datagram table entry from ADD NAME
04h DWORD -> I/O buffer
08h WORD length of data in buffer
0Ah 16 BYTEs remote system to call
1Ah 16 BYTEs network name of local machine
2Ah BYTE receive timeout in 1/2 seconds
2Bh BYTE send timeout in 1/2 seconds
2Ch DWORD -> FAR post handler /* int (far *ncb_post)(); */
30h BYTE network adapter number on which to execute command
00h-03h IBM NetBIOS specs
F0h-FFh Eicon NABios interface (see also INT 7B"Eicon")
31h BYTE command completion code (see returned status above)
32h 14 BYTEs reserved for network card
Values for command code field in NCB (OR with 80h for non-waiting call):
10h start session with NCB_NAME name (call)
11h listen for call
12h end session with NCB_NAME name (hangup)
14h send data via NCB_LSN
15h receive data from a session
16h receive data from any session
17h send multiple data buffers
20h send unACKed message (datagram)
21h receive datagram
22h send broadcast datagram
23h receive broadcast datagram
30h add name to name table
31h delete name from name table
32h reset adapter card and tables
33h get adapter status (see structure "astatus" below)
34h status of all sessions for name (see structure "sstatus" below)
35h cancel
36h add group name to name table
48h send data and receive data (LAN Manager NETBEUI.DOS)
70h unlink from IBM remote program (no F0h function)
71h send data without ACK
72h send multiple buffers without ACK
72h UngermannBass Register (conflicts with above function)
73h UngermannBass SendNmc
74h UngermannBass Callniu
75h UngermannBass Calladdr
76h UngermannBass Listenaddr
77h UngermannBass SendPkt
78h find name
78h UngermannBass RcvPkt (conflicts with above function)
79h token-ring protocol trace
79h UngermannBass SendAttn (conflicts with above function)
7Ah UngermannBass RcvAttn
7Bh UngermannBass Listenniu
7Ch UngermannBass RcvRaw
7Dh UngermannBass SendNmc2
Format of structure "name":
Offset Size Description
00h 16 BYTEs "nm_name" symbolic name
10h BYTE "nm_num" number associated with name
11h BYTE nm_status
Format of structure "astatus":
Offset Size Description
00h 6 BYTEs as_id
06h BYTE as_jumpers
07h BYTE as_post
08h BYTE as_major
09h BYTE as_minor
0Ah WORD as_interval
0Ch WORD as_crcerr
0Eh WORD as_algerr
10h WORD as_colerr
12h WORD as_abterr
14h DWORD as_tcount
18h DWORD as_rcount
1Ch WORD as_retran
1Eh WORD as_xresrc
20h 8 BYTEs as_res0
28h WORD as_ncbfree
2Ah WORD as_ncbmax
2Ch WORD as_ncbx
2Eh 4 BYTEs as_res1
32h WORD as_sespend
34h WORD as_msp
36h WORD as_sesmax
38h WORD as_bufsize
3Ah WORD as_names
3Ch 16 name structures as_name
Format of structure "sstatus":
Offset Size Description
00h BYTE number of sessions being reported
01h BYTE number of sessions with this name
02h BYTE number of outstanding receive datagrams
03h BYTE number of outstanding ReceiveAnys
04h var session structures (see below)
Format of structure "session":
Offset Size Description
00h BYTE local session number
01h BYTE state
01h listen pending
02h call pending
03h session established
04h hangup pending
05h hangup done
06h session aborted
02h 16 BYTEs local name
12h 16 BYTEs remote name
22h BYTE number of outstanding receives
23h BYTE number of outstanding sends/chainsends
--------N-5C---------------------------------
INT 5C - TOPS INTERFACE
ES:BX -> Network Control Block
Note: TOPS card uses DMA 1, 3 or none.
--------N-5C---------------------------------
INT 5C - ATALK.SYS - AppleTalk INTERFACE
DX:BX -> control block (see below)
Return: none
Notes: this driver can use any interrupt from 5Ch to 70h
the signature 'AppleTalk' appears 16 bytes prior to the interrupt
handler; this serves as the installation check
Index: installation check;ATALK.SYS|installation check;AppleTalk interface
Format of AppleTalk control block:
Offset Size Description
00h WORD command code
01h "AT_INIT" initialize the driver
02h "AT_KILL"
03h "AT_GETNETINFO" get current network info incl init status
04h "AT_GETCLOCKTICKS"
05h "AT_STARTTIMER"
06h "AT_RESETTIMER"
07h "AT_CANCELTIMER"
10h "LAP_INSTALL"
11h "LAP_REMOVE"
12h "LAP_WRITE"
13h "LAP_READ"
14h "LAP_CANCEL"
20h "DDP_OPENSOCKET"
21h "DDP_CLOSESOCKET"
22h "DDP_WRITE"
23h "DDP_READ"
24h "DDP_CANCEL"
30h "NBP_REGISTER"
31h "NBP_REMOVE"
32h "NBP_LOOKUP"
33h "NBP_CONFIRM"
34h "NBP_CANCEL"
35h "ZIP_GETZONELIST"
36h "ZIP_GETMYZONE"
37h "ZIP_TAKEDOWN"
38h "ZIP_BRINGUP"
40h "ATP_OPENSOCKET"
41h "ATP_CLOSESOCKET"
42h "ATP_SENDREQUEST"
43h "ATP_GETREQUEST"
44h "ATP_SENDRESPONSE"
45h "ATP_ADDRESPONSE"
46h "ATP_CANCELTRANS"
47h "ATP_CANCELRESPONSE"
48h "ATP_CANCELREQUEST"
50h "ASP_GETPARMS"
51h "ASP_CLOSESESSION"
52h "ASP_CANCEL"
53h "ASP_INIT"
54h "ASP_KILL"
55h "ASP_GETSESSION"
56h "ASP_GETREQUEST"
57h "ASP_CMDREPLY"
58h "ASP_WRTCONTINUE"
59h "ASP_WRTREPLY"
5Ah "ASP_CLOSEREPLY"
5Bh "ASP_NEWSTATUS"
5Ch "ASP_ATTENTION"
5Dh "ASP_GETSTATUS"
5Eh "ASP_OPENSESSION"
5Fh "ASP_COMMAND"
60h "ASP_WRITE"
61h "ASP_GETATTENTION"
70h "PAP_OPEN"
71h "PAP_CLOSE"
72h "PAP_READ"
73h "PAP_WRITE"
74h "PAP_STATUS"
75h "PAP_REGNAME"
76h "PAP_REMNAME"
77h "PAP_INIT"
78h "PAP_NEWSTATUS"
79h "PAP_GETNEXTJOB"
7Ah "PAP_KILL"
7Bh "PAP_CANCEL"
or with the following flags
8000h start command then return
4000h wait for interrupt service to complete
02h WORD returned status
0000h success (already initialized if func 01h)
04h DWORD pointer to completion function
08h WORD network number
0Ah BYTE node ID
---if general func (01h,03h), control block continues:
0Bh BYTE "inf_abridge"
0Ch WORD "inf_config"
0Eh DWORD pointer to buffer
12h WORD buffer size
---if DDP function (20h-24h), control block continues:
0Bh BYTE "ddp_addr_socket"
0Ch BYTE "ddp_socket"
0Dh BYTE "ddp_type"
0Eh DWORD pointer to buffer
12h WORD buffer size
14h BYTE "ddp_chksum"
---if Name Binding Protocol (30h-34h), control block continues:
0Bh BYTE "nbp_addr_socket"
0Ch WORD "nbp_toget"
0Eh DWORD pointer to buffer
12h WORD buffer size
14h BYTE "nbp_interval"
15h BYTE "nbp_retry"
16h DWORD "nbp_entptr"
---if AppleTalk Transaction Protocol (42h), control block continues:
0Bh BYTE "atp_addr_socket"
0Ch WORD "atp_socket"
0Eh DWORD pointer to buffer
12h WORD buffer size
14h BYTE "atp_interval"
15h BYTE "atp_retry"
16h BYTE ATP flags
bit 5: exactly one transaction
17h BYTE "atp_seqbit"
18h BYTE transaction ID
19h 4 BYTEs ATP user bytes
1Dh BYTE number of BDS buffers
1Eh BYTE number of BDS responses
1Fh DWORD pointer to BDS buffers (see below)
Format of Name Binding Protocol Name-to-Address binding entries for NBP_LOOKUP:
Offset Size Description
00h WORD "tup_address_network"
02h BYTE "tup_address_notid"
03h BYTE "tup_address_socket"
04h BYTE "tup_enum"
05h 99 BYTEs name
Format of BDS entries:
Offset Size Description
00h DWORD pointer to buffer
04h WORD size of buffer
06h WORD BDS data size
08h 4 BYTEs "bds_userbytes"
--------N-5C---------------------------------
INT 5C - IBM 802.2 INTERFACE (LLC)
ES:BX -> CCB (see below)
Return: none
Format of CCB:
Offset Size Description
00h BYTE adapter
01h BYTE command code
02h BYTE return code
03h BYTE work
04h DWORD pointer to ???
08h DWORD pointer to completion function???
0Ch DWORD pointer to parameters???
--------N-5C---------------------------------
INT 5C - $25 LAN - INSTALLATION CHECK
Notes: current versions only check whether the vector is 0000h:0000h or not
future versions are supposed to have the signature "NET" in the three
bytes preceding the INT 5C handler
--------N-5C04-------------------------------
INT 5C - $25 LAN - CHECK IF CONNECTION ALIVE
AH = 04h
AL = COM port (0 = default)
CX = wait count in character times (should be at least 100)
Return: ZF set if link alive
--------H-5D---------------------------------
INT 5D - IRQ13 relocated by DESQview 2.26+
Note: this is the default, but other INTs may be used (see INT 50"DESQview")
SeeAlso: INT 50"DESQview",INT 75
--------H-5D---------------------------------
INT 5D - IRQ5 relocated by DoubleDOS
SeeAlso: INT 0D,INT 5C"DoubleDOS"
--------H-5E---------------------------------
INT 5E - IRQ14 relocated by DESQview 2.26+
Note: this is the default, but other INTs may be used (see INT 50"DESQview")
SeeAlso: INT 50"DESQview",INT 76
--------H-5E---------------------------------
INT 5E - IRQ6 relocated by DoubleDOS
SeeAlso: INT 0E,INT 5D"DoubleDOS"
--------H-5F---------------------------------
INT 5F - IRQ15 relocated by DESQview 2.26+
Note: this is the default, but other INTs may be used (see INT 50"DESQview")
SeeAlso: INT 50"DESQview",INT 77
--------H-5F---------------------------------
INT 5F - IRQ7 relocated by DoubleDOS
SeeAlso: INT 0F,INT 5E"DoubleDOS"
--------b-5F00-------------------------------
INT 5F - HP 95LX GRAPHICS PRIMITIVES - SET VIDEO MODE
AH = 00h
AL = video mode
07h text, system manager compliant
20h 240x128 mono graphics, system manager compliant
87h text, not system manager compliant
A0h 240x128 mono graphics, not system manager compliant
Note: the defaults after setting the mode to graphics are (0,0) logical
origin, full-screen clip region, (0,0) pen location, pen color 1,
pixel replacement FORCE, line type and fill mask all bits set
SeeAlso: INT 0F"HP 95LX",INT 10/AH=00h,INT 15/AX=4DD4h
--------b-5F01-------------------------------
INT 5F - HP 95LX GRAPHICS PRIMITIVES - SET FILL MASK
AH = 01h
ES:DI -> 8-byte fill mask
Note: the fill mask represents an 8x8 pixel box and is repeated as necessary
when drawing filled rectangles; it is always aligned with the byte
boundaries of video memory, regardless of the actual boundaries of
the rectangle
SeeAlso: AH=02h
--------b-5F02-------------------------------
INT 5F - HP 95LX GRAPHICS PRIMITIVES - GET CURRENT GRAPHICS INFORMATION
AH = 02h
ES:DI -> graphics info record (see below)
Return: DX:AX -> filled graphics info record (for return to high-level langs)
Format of graphics info record:
Offset Size Description
00h BYTE current video mode
01h BYTE default video mode
02h WORD display width in pixels
04h WORD display height in pixels
06h WORD current pen column
08h WORD current pen row
0Ah WORD current line type
0Ch WORD current replacement rule
0Eh WORD current pen color
10h WORD current leftmost column of clip region
12h WORD current rightmost column of clip region
14h WORD current topmost row of clip region
16h WORD current bottommost row of clip region
18h WORD current column of logical origin
1Ah WORD current row of logical origin
1Ch 8 BYTEs current fill mask
--------b-5F03-------------------------------
INT 5F - HP 95LX GRAPHICS PRIMITIVES - SET LOGICAL ORIGIN
AH = 03h
CX = column
DX = row
SeeAlso: AH=04h
--------b-5F04-------------------------------
INT 5F - HP 95LX GRAPHICS PRIMITIVES - SET CLIP REGION
AH = 04h
CX = left-most column
DX = top-most row
SI = right-most column
DI = bottom-most row
SeeAlso: AH=03h
--------b-5F05-------------------------------
INT 5F - HP 95LX GRAPHICS PRIMITIVES - DRAW RECTANGLE
AH = 05h
AL = fill type
00h outline, using current line type and color
01h solid, using current color
02h pattern, using current fill mask and color
DX,CX = row,column of other corner of rectangle
Note: the rectangle is drawn starting at the current pen position
SeeAlso: AH=01h,AH=06h,AH=07h
--------b-5F06-------------------------------
INT 5F - HP 95LX GRAPHICS PRIMITIVES - DRAW LINE
AH = 06h
DX,CX = row,column of end point
Note: the line is drawn starting at the current pen position
SeeAlso: AH=05h,AH=07h
--------b-5F07-------------------------------
INT 5F - HP 95LX GRAPHICS PRIMITIVES - PLOT POINT
AH = 07h
DX,CX = row,column of point
Note: also sets pen position to the specified point
SeeAlso: AH=06h,AH=08h,AH=0Ch
--------b-5F08-------------------------------
INT 5F - HP 95LX GRAPHICS PRIMITIVES - MOVE PEN
AH = 08h
DX,CX = row,column of new pen position
SeeAlso: AH=07h,AH=09h
--------b-5F09-------------------------------
INT 5F - HP 95LX GRAPHICS PRIMITIVES - SET PEN COLOR
AH = 09h
AL = new color (00h = white, 01h = black)
SeeAlso: AH=08h,AH=0Ah,AH=0Bh
--------b-5F0A-------------------------------
INT 5F - HP 95LX GRAPHICS PRIMITIVES - SET REPLACEMENT RULE
AH = 0Ah
AL = new replacement rule
00h force
01h AND
02h OR
03h XOR
SeeAlso: AH=01h,AH=09h,AH=0Bh
--------b-5F0B-------------------------------
INT 5F - HP 95LX GRAPHICS PRIMITIVES - SET LINE TYPE
AH = 0Bh
CX = new line type
Note: the line type specifies 16 bits which are repeated over and over while
drawing the pixels of a line
SeeAlso: AH=09h,AH=0Ah
--------b-5F0C-------------------------------
INT 5F - HP 95LX GRAPHICS PRIMITIVES - GET PIXEL
AH = 0Ch
DX,CX = row,column of pixel to read
Return: AX = pixel color
SeeAlso: AH=07h
--------b-5F0D-------------------------------
INT 5F - HP 95LX GRAPHICS PRIMITIVES - GET IMAGE
AH = 0Dh
DX,CX = row,column of first corner
BP,SI = row,column of second corner
ES:DI -> image buffer (see below)
Note: the specified corners are included in the saved image
SeeAlso: AH=0Eh
Format of image buffer:
Offset Size Description
00h WORD number of planes (always 01h on HP 95LX)
02h WORD number of bits/pixel (always 01h on HP 95LX)
04h WORD image width in pixels
06h WORD image height in pixels
08h N BYTEs image data
requires (WIDTH+7)/8 * HEIGHT bytes
--------b-5F0E-------------------------------
INT 5F - HP 95LX GRAPHICS PRIMITIVES - PUT IMAGE
AH = 0Eh
AL = replacement rule
bit 2: invert image before applying rule
bits 1-0: 00 force
01 AND
10 OR
11 XOR
DX,CX = row,column of top left corner
ES:DI -> image buffer (see AH=0Dh)
Note: if the specified image does not fit completely on the screen, this call
does nothing
SeeAlso: AH=0Dh
--------b-5F0F-------------------------------
INT 5F - HP 95LX GRAPHICS PRIMITIVES - WRITE TEXT
AH = 0Fh
AL = rotate flag (if nonzero, rotate 90 degrees counter-clockwise)
DX,CX = row,column of first character's top left corner
ES:DI -> ASCIZ text
--------*-60---------------------------------
INT 60 - reserved for user interrupt
--------v-60---------------------------------
INT 60 - VIRUS - "Zero Bug" - INSTALLATION CHECK
The "Zero Bug" virus hooks this vector. It considers itself installed if
offset 103h of the handler's segment contains the bytes "ZE"
SeeAlso: INT 32,INT 44"VIRUS",INT 61"SEMTEX"
--------d-60---------------------------------
INT 60 - Adaptec and OMTI controllers - DRIVE 0 DATA
SeeAlso: INT 61"Adaptec",INT 62"Adaptec",INT 63"Adaptec",INT 64"Adaptec"
Notes: this vector stores the first four bytes of the parameter table for
hard disk 0
these vectors are used by the following Adaptec controllers:
ACB 2370 A/B/C, ACB 2372 A/B/C, ACB 2333 A/B, 2322B-8, 2322B-16
these vectors are NOT used by the following Adaptec controllers:
ACB 2310, ACB 2312, ACB 2320D, ACB 2322D
--------b-60---------------------------------
INT 60 - Atari Portfolio - USER INTERFACE FUNCTIONS
supplies a number of subfunctions which perform such functions as drawing
boxes and menus, and provide input line editing
SeeAlso: INT 61"Atari"
----------60---------------------------------
INT 60 - Nabbit v2.0 - (NOT A VECTOR!) - INSTALLATION CHECK
Program: Nabbit is a shareware resident screen data grabber by RSE Inc.
Note: Nabbit searches INT 60 through INT 66 for a vector which points at
its ASCIZ signature string "iG" (69h 47h 00h), and uses the first
free vector in that range it is it not already installed
----------60---------------------------------
INT 60 - PC-IPC API
STACK: DWORD pointer to parameter block (see below)
Return: STACK: unchanged
Program: PC-IPC is a shareware TSR by Donnelly Software Engineering which
allows communication between independent programs
Note: INT 60 is the default, any interrupt vector may be used by specifying
the vector on the commandline
Format of parameter block:
Offset Size Description
00h WORD caller's ID
02h WORD to ID
04h WORD command code (see below)
06h WORD returned status
bit 0: unused
bit 1: IPC enabled
bit 2: IPC installed
bit 3: error
bit 4: message(s) available
08h WORD returned error code (see below)
0Ah WORD size of data
0Ch DWORD pointer to data buffer
Values of command code:
01h "IPC_CMND_INQUIRE" inquire current status
set status field, writes WORD to data buffer containing free
message space in bytes, and sets the "size" field to the
number of messages waiting
02h "IPC_CMND_ENABLE" reenable PC-IPC
ignored unless called with the same ID that disabled PC-IPC
03h "IPC_CMND_DISABLE" disable PC-IPC
04h "IPC_CMND_INSTALL" reset PC-IPC
06h "IPC_CMND_RDATA" read data
returns first message in data buffer, sets "size" to message
length and "to ID" field to sender's ID
if no messages available, bit 4 of status is cleared and "size"
is set to zero
07h "IPC_CMND_SDATA" send data
08h "IPC_CMND_REQID" require user ID
create a new recognized ID and return in "caller's ID" field
09h "IPC_CMND_DELID" cancel user ID
delete caller's ID from pool of recognized IDs
0Ah "IPC_CMND_RDATAW" read data, wait if no messages available
0Bh "IPC_CMND_VERS" get PC-IPC version
string representing version returned in data buffer, "size"
field set to length of string
Values for error code:
00h no error
01h invalid command or parameter
02h only process 0 can install/reset IPC
03h process can not install/reset IPC
04h IPC is not enabled
05h process can not disable IPC
06h invalid destination process ID
07h invalid sending process ID
08h invalid data destination
09h no more process IDs available
0Ah can not relinquish that process ID
0Bh message space is full
0Ch IPC is not installed
--------R-60---------------------------------
INT 60 - Tangram Arbiter - API
Notes: Arbiter may use any interrupt from 60h to 66h (parameterized)
identified by string "@ARB_API" immediately following a short jump at
the interrupt handler address
Arbiter makes a PC disk look like a slow disk over an SNA link to an
IBM mainframe
--------G-60---------------------------------
INT 60 U - INTRSPY/CMDSPY API
Program: INTRSPY is a script-driven debugger included with the book
_Undocumented_DOS_.
Notes: INTRSPY will hook the first available interrupt in the range 60h-67h.
The installation check is to
a) determine that the handler is an IRET instruction
b) the signature 0Dh "INTRSPY vN.NN" immediately precedes the handler
If INTRSPY is installed, the DWORD immediately after the IRET stores
its entry point.
Index: installation check;INTRSPY
Call INTRSPY entry point with:
AH = function
00h ???
01h set current directory (for use in reporting)
ES:DI -> counted string containing directory name (max 79 char)
02h set name of script file
ES:DI -> counted string containing file name (max 79 chars)
03h set script arguments
ES:DI -> counted string containing arguments (max 79 chars)
04h get directory set with function 01h
ES:DI -> 80-byte buffer for directory name
05h get name of script file
ES:DI -> 80-byte buffer for script filename
06h get script arguments
ES:DI -> 80-byte buffer for script arguments
07h get ???
CL = 00h-15h specifies what to get
ES:DI -> WORD to be set with desired value on return
08h get ???
ES:DI -> WORD to be set with returned value
09h get ???
ES:DI -> WORD to be set with returned value
0Bh store code for interrupt handler???
ES:DI -> data
CX = number of bytes
0Ch ???
ES:DI -> ???
0Dh get ???
ES:DI -> BYTE to be set with returned value
0Eh set ??? flag
0Fh clear ??? flag
10h ???
Return: AL = 04h or 05h if failed
11h ???
Return: AL = 05h if failed
12h get ???
ES:DI -> buffer
Return: CX = number of bytes returned in buffer
13h ???
Return: AH = 00h
AL = status
00h successful
01h invalid function
02h ???
03h ???
04h ???
05h ???
--------u-60---------------------------------
INT 60 U - PC/370 v4.2 - ???
???
Return: ???
Program: PC/370 is an IBM 370 emulator by Donald S. Higgins
Note: this is the default interrupt, however the documentation includes
instructions for patching the system for another interrupt
SeeAlso: INT 2F/AX=7F24h,INT DC"PC/370"
--------r-60---------------------------------
INT 60 - JPI TopSPEED Modula-2 v1 - PROCEDURE ENTRY TRAP
SeeAlso: INT 61"JPI"
--------N-60---------------------------------
INT 60 - FTP Packet Driver - PC/TCP Packet Driver Specification
Notes: The handler for the interrupt will start with a 3-byte jump
instruction, followed by the ASCIZ string "PKT DRVR" (the
terminating NUL is significant).
To find the interrupt being used by the driver, an application should
scan through interrupt vectors 60h to 80h (20h through FFh for
v1.10+ of the specification) until it finds one with the "PKT DRVR"
string.
AH values of 80h to FFh have been reserved for user-defined additions.
--------b-60----DI0100-----------------------
INT 60 u - HP 95LX System Manager - WAIT FOR EVENT
DI = 0100h
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to event record (see below)
Return: event record filled
STACK unchanged
Note: this call will timeout after about 500ms
SeeAlso: INT 15/AX=4DD4h,INT 60/DI=0101h,INT 61"HP 95LX",INT 62"HP 95LX"
Format of event record:
Offset Size Description
00h WORD event type
00h no events
01h keystroke available
02h Ctrl-Break
03h reactivation (always follows deactivation event)
04h about to deactivate (sleep)
next get-event call will not return until reactivated
05h forced application termination
06h 1-2-3 bridge service request (only given to 1-2-3)
07h request to grow
08h request to shrink
09h application's alarm expired
0Ah daily chance to set an alarm
0Bh system date or time has been changed
02h WORD ASCII code page 850 translation of keystroke
or grow/shrink amount in paragraphs or 0000h if error
or alarm expiration data
04h BYTE scan code from BIOS
05h BYTE shift key states at time keystroke is retrieved
06h WORD LICS translation of keystroke
08h BYTE function key number (1-2-3 only)
09h DWORD pointer to 1-2-3 bridge record (see INT 60/DI=0104h)
or pointer to time change structure (see below)
Note: if the System Manager is waiting the conclusion of a bridge service
or grow/shrink call and the event type field is set to FFFFh on
entry, the SysMgr will resume
Format of time change structure:
Offset Size Description
00h WORD old year
02h BYTE old month
03h BYTE old date
04h BYTE old day
05h BYTE old hour
06h BYTE old minute
07h BYTE old second
08h BYTE old hundredth of a second
09h 9 BYTEs new time in same format as old time
--------b-60----DI0101-----------------------
INT 60 u - HP 95LX System Manager - CHECK FOR EVENT
DI = 0101h
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to event record (INT 60/DI=0100h)
Return: event record filled
STACK unchanged
Note: this call returns immediately if no event is available
SeeAlso: INT 60/DI=0100h
--------b-60----DI0102-----------------------
INT 60 u - HP 95LX System Manager - "SH_STATUS"
DI = 0102h
STACK: 2 WORDs unused dummies (for calls from high level languages)
Return: ???
STACK unchanged
--------b-60----DI0104-----------------------
INT 60 u - HP 95LX System Manager - LOTUS 1-2-3 BRIDGE SERVICES
DI = 0104h
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to bridge record (see below)
Return: ???
STACK unchanged
Format of bridge record:
Offset Size Description
00h WORD function code
00h test
01h get range
02h "GETRANGE_ADDR"
03h "SETRANGE_ADDR"
04h "GETRANGE_DATA"
05h "SETRANGE_DATA"
06h recalculate
07h get cursor
08h set cursor
09h redisplay
0Ah cell type
0Bh "CALCTYPE"
02h WORD return code from 1-2-3
04h 16 BYTEs ASCII range name
14h WORD start column of range
16h WORD start row of range
18h WORD end column of range
1Ah WORD end row of range
1Ch WORD order in which data is placed in buffer
1Eh WORD buffer size
20h WORD offset within bridge record's segment of buffer for cell data
--------b-60----DI0105-----------------------
INT 60 u - HP 95LX System Manager - FLUSH KEYBOARD BUFFER
DI = 0105h
STACK: 2 WORDs unused dummies (for calls from high level languages)
Return: ???
STACK unchanged
--------b-60----DI0106-----------------------
INT 60 u - HP 95LX System Manager - YIELD CPU
DI = 0106h
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to ???
Return: ???
STACK unchanged
SeeAlso: INT 15/AX=1000h,INT 2F/AX=1680h
--------b-60----DI0107-----------------------
INT 60 u - HP 95LX System Manager - "NO_FINI" - REFUSE TERMINATION REQUEST
DI = 0107h
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to ???
Return: ???
STACK unchanged
SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
--------b-60----DI0200-----------------------
INT 60 u - HP 95LX System Manager - SETUP MENU
DI = 0200h
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to menu data (see below)
DWORD pointer to ???
WORD number of items on menu???
WORD ???
DWORD pointer to ???
WORD ???
DWORD pointer to ???
Return: ???
STACK unchanged
SeeAlso: INT 15/AX=4DD4h,INT 60/DI=0201h,INT 60/DI=0203h,INT 60/DI=0205h
Format of menu data:
Offset Size Description
00h 80 BYTEs first line of menu text
50h 80 BYTEs second line of menu text
A0h 80 BYTEs third line of menu text
F0h WORD number of keywords
F2h WORD index of currently highlighted keyword or FFFFh
F4h WORD single prompt on top line if nonzero
F6h 20 BYTEs which line each of 20 keywords is located on
10Ah 20 BYTEs offset of each of 20 keywords within its line
11Eh 20 BYTEs length of each of 20 keywords
132h 20 BYTEs first letter of each of 20 keywords
146h 20 WORDs offsets of long prompts for each of 20 keywords
--------b-60----DI0201-----------------------
INT 60 u - HP 95LX System Manager - DISPLAY OR REDISPLAY MENU
DI = 0201h
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to menu data (see INT 60/DI=0200h)
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0200h,INT 60/DI=0202h,INT 60/DI=0206h
--------b-60----DI0202-----------------------
INT 60 u - HP 95LX System Manager - "MENU_ON" - ENABLE PROCESSING OF MENU
DI = 0202h
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to menu data (see INT 60/DI=0200h)
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0200h,INT 60/DI=0201h,INT 60/DI=0203h
--------b-60----DI0203-----------------------
INT 60 u - HP 95LX System Manager - REMOVE MENU
DI = 0203h
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to menu data (see INT 60/DI=0200h)
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0201h,INT 60/DI=0202h,INT 60/DI=0204h,INT 60/DI=0208h
--------b-60----DI0204-----------------------
INT 60 u - HP 95LX System Manager - LET SYSTEM MANAGER HANDLE MENU KEYSTROKE
DI = 0204h
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to menu data (see INT 60/DI=0200h)
WORD keystroke
DWORD pointer to WORD to receive selection number
Return: buffer for selection number filled with index of selected menu item or
FFFFh if no final selection yet
STACK unchanged
SeeAlso: INT 60/DI=0200h,INT 60/DI=0202h,INT 60/DI=0207h
--------b-60----DI0205-----------------------
INT 60 u - HP 95LX System Manager - INITIALIZE FILE SELECTION MENU
DI = 0205h
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to file menu structure (see below)
DWORD pointer to edit record (see INT 60/DI=0400h)
DWORD pointer to wildcard filespec for initial file list
WORD row???
WORD column???
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0200h,INT 60/DI=0206h,INT 60/DI=0208h
Format of file menu structure:
Offset Size Description
00h DWORD pointer to ASCIZ base directory name
04h DWORD pointer to ASCIZ file pattern (wildcard filespec)
08h DWORD pointer to file list workspace, at least 1024 bytes (see below)
0Ch WORD size of file list workspace in bytes
0Eh WORD starting row (-3 is topmost, 0 is first non-"reserved" line)
10h WORD starting column
12h WORD number of lines
14h WORD number of columns
16h WORD number of files displayed on each line
---the remaining fields are initialized by the System Manager---
18h WORD 0000h if first edit character, else multiline
1Ah WORD number of files in file list
1Ch WORD max files workspace has room for
1Eh WORD file at top of list
20h WORD index of file to highlight
22h WORD index of file to unhighlight
24h WORD current focus (01h FMENU, 02h EDIT)
Format of file list workspace entry:
Offset Size Description
00h BYTE file attributes
01h WORD file time (see INT 21/AX=5700h)
03h WORD file date (see INT 21/AX=5700h)
05h DWORD file size
09h 13 BYTEs ASCIZ filename
--------b-60----DI0206-----------------------
INT 60 u - HP 95LX System Manager - DISPLAY/REDISPLAY FILE SELECTION MENU
DI = 0206h
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to file menu structure (see INT 60/DI=0205h)
DWORD pointer to edit record (see INT 60/DI=0400h)
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0205h
--------b-60----DI0207-----------------------
INT 60 u - HP 95LX System Manager - LET SYSMGR PROCESS FILE SEL MENU KEYSTROKE
DI = 0207h
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to file menu structure (see INT 60/DI=0205h)
DWORD pointer to edit record (see INT 60/DI=0400h)
WORD keystroke
Return: AX = status
0000h keystroke processed, call INT 60/DI=0206h to refresh menu
0001h redisplay application area before refreshing menu
0002h user confirmed selection, filename is in edit record's buffer
0003h user aborted menu
FFFBh bad filename
FFFCh bad directory
FFFDh bad drive
FFFEh unknown keystroke
FFFFh keystroke known but invalid in current context
STACK unchanged
SeeAlso: INT 60/DI=0205h,INT 60/DI=0208h
--------b-60----DI0208-----------------------
INT 60 u - HP 95LX System Manager - REMOVE FILE SELECTION MENU
DI = 0208h
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to file menu structure (see INT 60/DI=0205h)
DWORD pointer to edit record (see INT 60/DI=0400h)
Return: ???
STACK unchanged
SeeAlso: INT 15/AX=4DD4h,INT 60/DI=0205h,INT 60/DI=0206h
--------b-60----DI0300-----------------------
INT 60 u - HP 95LX System Manager - DISPLAY STRING
DI = 0300h
STACK: 2 WORDs unused dummies (for calls from high level languages)
WORD starting row (-3 is topmost, 0 is first user line)
WORD starting column
DWORD pointer to string
WORD length of string
WORD display style: 0000h normal, 0001h reverse video
WORD "OSTYLE"
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0F03h,INT 60/DI=1005h
--------b-60----DI0301-----------------------
INT 60 u - HP 95LX System Manager - CLEAR PORTION OF SCREEN
DI = 0301h
STACK: 2 WORDs unused dummies (for calls from high level languages)
WORD starting row (-3 is topmost, 0 is first user line)
WORD starting column
WORD number of rows
WORD number of columns
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0302h,INT 60/DI=1005h
--------b-60----DI0302-----------------------
INT 60 u - HP 95LX System Manager - SCROLL PORTION OF SCREEN
DI = 0302h
STACK: 2 WORDs unused dummies (for calls from high level languages)
WORD starting row???
WORD starting column???
WORD height of scroll region???
WORD width of scroll region???
WORD number of lines to scroll region???
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0301h
--------b-60----DI0303-----------------------
INT 60 u - HP 95LX System Manager - SCREEN SERVICE "M_XCHG"
DI = 0303h
STACK: 2 WORDs unused dummies (for calls from high level languages)
WORD ???
WORD ???
WORD ???
WORD ???
DWORD pointer to ???
Return: ???
STACK unchanged
--------b-60----DI0304-----------------------
INT 60 u - HP 95LX System Manager - SCREEN SERVICE "M_CHRATTR"
DI = 0304h
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to ???
WORD ???
Return: ???
STACK unchanged
--------b-60----DI0305-----------------------
INT 60 u - HP 95LX System Manager - SCREEN SERVICE "M_CHRRVRT"
DI = 0305h
STACK: 2 WORDs unused dummies (for calls from high level languages)
WORD ???
WORD ???
DWORD pointer to ???
WORD ???
Return: ???
STACK unchanged
--------b-60----DI0307-----------------------
INT 60 u - HP 95LX System Manager - SCREEN SERVICE "M_CHRINV"
DI = 0307h
STACK: 2 WORDs unused dummies (for calls from high level languages)
WORD ???
WORD ???
WORD ???
Return: ???
STACK unchanged
--------b-60----DI0308-----------------------
INT 60 u - HP 95LX System Manager - SCREEN SERVICE "M_ROWS_COLS"
DI = 0308h
STACK: 2 WORDs unused dummies (for calls from high level languages)
Return: ???
STACK unchanged
--------b-60----DI0309-----------------------
INT 60 u - HP 95LX System Manager - SET SCREEN (VIDEO???) MODE
DI = 0309h
STACK: 2 WORDs unused dummies (for calls from high level languages)
WORD new mode
Return: ???
STACK unchanged
--------b-60----DI030A-----------------------
INT 60 u - HP 95LX System Manager - GET SCREEN (VIDEO???) MODE
DI = 030Ah
STACK: 2 WORDs unused dummies (for calls from high level languages)
Return: ???
STACK unchanged
--------b-60----DI030B-----------------------
INT 60 u - HP 95LX System Manager - SET CURSOR POSITION
DI = 030Bh
STACK: 2 WORDs unused dummies (for calls from high level languages)
WORD row (-3 is topmost, 0 is first non-reserved line)
WORD column
Return: ???
STACK unchanged
Note: cursor is hidden if the specified position is not on the physical
display
SeeAlso: INT 10/AH=02h,INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
--------b-60----DI0400-----------------------
INT 60 u - HP 95LX System Manager - "EDIT_INIT"
DI = 0400h
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to edit record (see below)
DWORD pointer to string to be edited
WORD initial length of string being edited
WORD maximum length of edited string
WORD row of edit field
WORD leftmost column of edit field
Return: ???
STACK unchanged
Format of edit record:
Offset Size Description
00h WORD current length of edit buffer
02h BYTE flag for special processing on first character
03h BYTE flags
bit 0: tab handling
04h WORD editing in prompt window?
06h DWORD pointer to top line of prompt window message
0Ah WORD length of top line of prompt
0Ch DWORD pointer to second line of prompt window message
10h WORD length of second line of prompt
12h 80 BYTEs workspace for editing
62h 2 WORDs line array needed for multi-line editing
66h 36 BYTEs multi-line edit record (see below)
8Ah WORD displayable columns
Format of multi-line edit record:
Offset Size Description
00h DWORD pointer to user-supplied edit buffer
04h WORD length of edit buffer
06h WORD current cursor position
08h WORD starting row of edit area (-3 is topmost, 0 is first user line)
0Ah WORD starting column of edit area
0Ch WORD height of edit area
0Eh WORD width of edit area
10h WORD current top row (-3 is topmost, 0 is first user line)
12h WORD number of rows displayable
14h BYTE cursor column
15h BYTE 01h if buffer has been modified
16h BYTE first displayable column (ticker fields only)
17h BYTE 01h if wordwrap enabled, FFh if ticker field
18h DWORD pointer to array of line starts (at least one bigger than edit
area is high)
1Ch BYTE currently marking?
1Dh BYTE flag
1Eh WORD offset of mark start
20h WORD offset of mark end (inclusive)
22h WORD displayable columns
--------b-60----DI0401-----------------------
INT 60 u - HP 95LX System Manager - EDIT ON TOP LINE
DI = 0401h
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to edit record (see INT 60/DI=0400h)
DWORD pointer to string to edit
WORD initial length of string being edited
WORD maximum length of edited string
DWORD pointer to first line of prompt
WORD length of first line
DWORD pointer to second line of prompt
WORD length of second line
Return: ???
STACK unchanged
--------b-60----DI0402-----------------------
INT 60 u - HP 95LX System Manager - DISPLAY OR REDISPLAY EDIT FIELD
DI = 0402h
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to edit record (see INT 60/DI=0400h)
Return: ???
STACK unchanged
--------b-60----DI0403-----------------------
INT 60 u - HP 95LX System Manager - LET SYSTEM MANAGER PROCESS EDITING KEYSTROK
DI = 0403h
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to edit record (see INT 60/DI=0400h)
WORD keystroke
DWORD pointer to WORD buffer for result code
Return: result code buffer filled with 0001h if editing complete
STACK unchanged
--------b-60----DI0404-----------------------
INT 60 u - HP 95LX System Manager - "MDIT_INI"
DI = 0404h
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to ???
WORD ???
WORD ???
WORD ???
WORD ???
DWORD pointer to ???
WORD ???
WORD ???
WORD ???
DWORD pointer to ???
Return: ???
STACK unchanged
--------b-60----DI0405-----------------------
INT 60 u - HP 95LX System Manager - "MDIT_DIS"
DI = 0405h
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to ???
Return: ???
STACK unchanged
--------b-60----DI0406-----------------------
INT 60 u - HP 95LX System Manager - "MDIT_KEY"
DI = 0406h
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to ???
WORD ???
Return: ???
STACK unchanged
--------b-60----DI0407-----------------------
INT 60 u - HP 95LX System Manager - "MDIT_FIL"
DI = 0407h
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to ???
DWORD pointer to ???
Return: ???
STACK unchanged
--------b-60----DI0408-----------------------
INT 60 u - HP 95LX System Manager - "MDIT_MARK"
DI = 0408h
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to ???
Return: ???
STACK unchanged
--------b-60----DI0409-----------------------
INT 60 u - HP 95LX System Manager - "MDIT_UNMARK"
DI = 0409h
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to ???
Return: ???
STACK unchanged
--------b-60----DI040A-----------------------
INT 60 u - HP 95LX System Manager - "MDIT_CUTMARK"
DI = 040Ah
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to ???
Return: ???
STACK unchanged
--------b-60----DI040B-----------------------
INT 60 u - HP 95LX System Manager - "MDIT_INS_STR"
DI = 040Bh
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to ???
DWORD pointer to ???
WORD ???
Return: ???
STACK unchanged
SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
--------b-60----DI0500-----------------------
INT 60 u - HP 95LX System Manager - OPEN FILE
DI = 0500h
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to file state record (see below)
DWORD pointer to filename
WORD length of filename
WORD ???
WORD suppress buffering if nonzero
Return: AX = status
STACK unchanged
SeeAlso: INT 60/DI=0501h,INT 60/DI=0502h,INT 60/DI=0508h
Format of file state record:
Offset Size Description
00h WORD DOS file handle
02h WORD flags
bit 0: buffer contents valid
bit 1: buffer is dirty and must be written
bit 2: unbuffered I/O
bit 3: file is a character device
04h DWORD current DOS physical file offset (FFFFFFFFh if unknown)
08h DWORD DOS file offset of start of buffer
0Ch DWORD effective file offset as seen by caller
10h WORD number of bytes in file buffer
---buffered I/O only---
12h 512 BYTEs file buffer
--------b-60----DI0501-----------------------
INT 60 u - HP 95LX System Manager - OPEN FILE IN READ-ONLY MODE
DI = 0501h
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to file state record (see INT 60/DI=0500h)
DWORD pointer to filename
WORD length of filename
WORD ???
WORD suppress buffering if nonzero
Return: AX = status
STACK unchanged
SeeAlso: INT 60/DI=0500h
--------b-60----DI0502-----------------------
INT 60 u - HP 95LX System Manager - CREATE NEW FILE
DI = 0502h
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to file state record (see INT 60/DI=0500h)
DWORD pointer to filename
WORD length of filename
WORD ???
WORD suppress buffering if nonzero
Return: AX = status
STACK unchanged
SeeAlso: INT 60/DI=0500h,INT 60/DI=0503h
--------b-60----DI0503-----------------------
INT 60 u - HP 95LX System Manager - CREATE OR TRUNCATE FILE
DI = 0503h
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to file state record (see INT 60/DI=0500h)
DWORD pointer to filename
WORD length of filename
WORD ???
WORD suppress buffering if nonzero
Return: AX = status
STACK unchanged
SeeAlso: INT 60/DI=0502h
--------b-60----DI0504-----------------------
INT 60 u - HP 95LX System Manager - READ FROM FILE
DI = 0504h
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to file state record (see INT 60/DI=0500h)
DWORD pointer to data buffer
WORD number of bytes to read
DWORD pointer to WORD in which to return actual bytes read
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0505h
--------b-60----DI0505-----------------------
INT 60 - HP 95LX System Manager - WRITE TO FILE
DI = 0505h
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to file state record (see INT 60/DI=0500h)
DWORD pointer to data
WORD length of data
Return: AX = status
STACK unchanged
SeeAlso: INT 60/DI=0504h
--------b-60----DI0506-----------------------
INT 60 u - HP 95LX System Manager - SET FILE POSITION
DI = 0506h
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to file state record (see INT 60/DI=0500h)
WORD ???
WORD ???
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0507h
--------b-60----DI0507-----------------------
INT 60 u - HP 95LX System Manager - GET FILE POSITION
DI = 0507h "M_TELL"
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to file state record (see INT 60/DI=0500h)
DWORD pointer to DWORD buffer for file position???
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0506h
--------b-60----DI0508-----------------------
INT 60 u - HP 95LX System Manager - CLOSE FILE
DI = 0508h
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to file state record (see INT 60/DI=0500h)
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0500h
--------b-60----DI0509-----------------------
INT 60 u - HP 95LX System Manager - FILE SERVICE "M_SETPAT"
DI = 0509h
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to ???
DWORD pointer to ???
WORD ???
WORD ???
Return: ???
STACK unchanged
--------b-60----DI050A-----------------------
INT 60 u - HP 95LX System Manager - FILE SERVICE "M_MATCH"
DI = 050Ah
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to ???
DWORD pointer to ???
Return: ???
STACK unchanged
Format of pattern match control block:
Offset Size Description
00h 43 BYTEs FindFirst data block (see INT 21/AH=4Eh)
2Bh 80 BYTEs full path name
7Bh BYTE offset of last component of filename
7Ch BYTE DOS function number (4Eh or 4Fh)
--------b-60----DI050B-----------------------
INT 60 u - HP 95LX System Manager - IDENTIFY FILENAME REFERENT
DI = 050Bh
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to ???
WORD ???
WORD ???
DWORD pointer to ???
Return: ???
STACK unchanged
Values returned:
0000h nonexistent
0001h file
0002h directory
0003h character device
--------b-60----DI050C-----------------------
INT 60 u - HP 95LX System Manager - DELETE FILE
DI = 050Ch "M_DELETE"
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to ???
WORD ???
WORD ???
Return: ???
STACK unchanged
--------b-60----DI050D-----------------------
INT 60 u - HP 95LX System Manager - RENAME FILE
DI = 050Dh
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to ???
WORD ???
WORD ???
DWORD pointer to ???
WORD ???
WORD ???
Return: ???
STACK unchanged
--------b-60----DI050E-----------------------
INT 60 u - HP 95LX System Manager - FILE SERVICE "M_GETDIR"
DI = 050Eh
STACK: 2 WORDs unused dummies (for calls from high level languages)
WORD ???
DWORD pointer to ???
DWORD pointer to ???
Return: ???
STACK unchanged
--------b-60----DI050F-----------------------
INT 60 u - HP 95LX System Manager - FILE SERVICE "M_SETDIR"
DI = 050Fh
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to ???
WORD ???
Return: ???
STACK unchanged
--------b-60----DI0510-----------------------
INT 60 u - HP 95LX System Manager - FILE SERVICE "M_VOLUME"
DI = 0510h
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to ???
DWORD pointer to ???
Return: ???
STACK unchanged
--------b-60----DI0511-----------------------
INT 60 u - HP 95LX System Manager - MAKE A SUBDIRECTORY
DI = 0511h
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to ???
WORD ???
WORD ???
Return: ???
STACK unchanged
--------b-60----DI0512-----------------------
INT 60 u - HP 95LX System Manager - REMOVE A SUBDIRECTORY
DI = 0512h
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to ???
WORD ???
WORD ???
Return: ???
STACK unchanged
--------b-60----DI0513-----------------------
INT 60 u - HP 95LX System Manager - GET DEFAULT DRIVE
DI = 0513h
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to ??? buffer for current drive
Return: ???
STACK unchanged
--------b-60----DI0514-----------------------
INT 60 u - HP 95LX System Manager - SET DEFAULT DRIVE
DI = 0514h
STACK: 2 WORDs unused dummies (for calls from high level languages)
WORD new drive
Return: ???
STACK unchanged
--------b-60----DI0515-----------------------
INT 60 u - HP 95LX System Manager - FILE SERVICE "M_FDATE"
DI = 0515h
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to ???
DWORD pointer to ???
Return: ???
STACK unchanged
--------b-60----DI0516-----------------------
INT 60 u - HP 95LX System Manager - FILE SERVICE "M_GET_SYSDIR"
DI = 0516h
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to ???
Return: ???
STACK unchanged
--------b-60----DI0517-----------------------
INT 60 u - HP 95LX System Manager - GET FILE ATTRIBUTES
DI = 0517h
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to ???
WORD ???
WORD ???
DWORD pointer to ??? buffer for file's attributes???
Return: ???
STACK unchanged
--------b-60----DI0518-----------------------
INT 60 u - HP 95LX System Manager - SET FILE ATTRIBUTES
DI = 0518h
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to ???
WORD ???
WORD ???
WORD new attributes???
Return: ???
STACK unchanged
--------b-60----DI0519-----------------------
INT 60 u - HP 95LX System Manager - FILE SERVICE "M_COMMON_OPEN"
DI = 0519h
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to ???
DWORD pointer to ???
WORD ???
WORD ???
WORD ???
WORD ???
WORD ???
Return: ???
STACK unchanged
--------b-60----DI051A-----------------------
INT 60 u - HP 95LX System Manager - FILE SERVICE "M_COPYDT"
DI = 051Ah
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to ???
DWORD pointer to ???
Return: ???
STACK unchanged
--------b-60----DI051B-----------------------
INT 60 u - HP 95LX System Manager - FILE SERVICE "M_GETFDT"
DI = 051Bh
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to ???
DWORD pointer to ???
Return: ???
STACK unchanged
--------b-60----DI051C-----------------------
INT 60 u - HP 95LX System Manager - FILE SERVICE "M_PUTFDT"
DI = 051Ch
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to ???
WORD ???
Return: ???
STACK unchanged
--------b-60----DI0600-----------------------
INT 60 u - HP 95LX System Manager - PROCESS INITIALIZING
DI = 0600h
STACK: 2 WORDs unused dummies (for calls from high level languages)
Return: ???
STACK unchanged
SeeAlso: INT 15/AX=4DD4h,INT 60/DI=0601h,INT 61"HP 95LX"
--------b-60----DI0601-----------------------
INT 60 u - HP 95LX System Manager - PROCESS TERMINATION
DI = 0601h
STACK: 2 WORDs unused dummies (for calls from high level languages)
Return: never
STACK unchanged
SeeAlso: INT 21/AH=4Ch,INT 60/DI=0600h
--------b-60----DI0602-----------------------
INT 60 u - HP 95LX System Manager - "M_LOCK" - PREVENT TASK SWITCHES
DI = 0602h
STACK: 2 WORDs unused dummies (for calls from high level languages)
Return: ???
STACK unchanged
SeeAlso: INT 15/AX=101Bh,INT 60/DI=0603h
--------b-60----DI0603-----------------------
INT 60 u - HP 95LX System Manager - "M_UNLOCK" - ALLOW TASK SWITCHES
DI = 0603h
STACK: 2 WORDs unused dummies (for calls from high level languages)
Return: ???
STACK unchanged
SeeAlso: INT 15/AX=101Ch,INT 60/DI=0602h
--------b-60----DI0604-----------------------
INT 60 u - HP 95LX System Manager - "M_SPAWN"
DI = 0604h
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to ???
WORD ???
WORD ???
DWORD pointer to ???
Return: ???
STACK unchanged
--------b-60----DI0605-----------------------
INT 60 u - HP 95LX System Manager - "M_APPCOUNT"
DI = 0605h
STACK: 2 WORDs unused dummies (for calls from high level languages)
Return: ???
STACK unchanged
--------b-60----DI0606-----------------------
INT 60 u - HP 95LX System Manager - "M_REBOOT"
DI = 0606h
STACK: 2 WORDs unused dummies (for calls from high level languages)
Return: ???
STACK unchanged
--------b-60----DI0607-----------------------
INT 60 u - HP 95LX System Manager - "M_SPAWNARG"
DI = 0607h
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to ???
WORD ???
DWORD pointer to ???
WORD ???
Return: ???
STACK unchanged
--------b-60----DI0608-----------------------
INT 60 u - HP 95LX System Manager - "M_REG_APP_NAME"
DI = 0608h
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to ???
Return: ???
STACK unchanged
--------b-60----DI0609-----------------------
INT 60 u - HP 95LX System Manager - "M_APP_NAME"
DI = 0609h
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to ???
Return: DX:AX -> ???
STACK unchanged
SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
--------b-60----DI0700-----------------------
INT 60 u - HP 95LX System Manager - OPEN CLIPBOARD
DI = 0700h
STACK: 2 WORDs unused dummies (for calls from high level languages)
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0701h,INT 60/DI=0702h
Values for error code:
0000h successful
FFF8h transfer request out of bounds
FFF9h no such representation
FFFAh no representation open
FFFBh a representation is already open
FFFCh representation already exists
FFFDh heap allocation failure
FFFEh clipboard not open
FFFFh clipboard access denied
--------b-60----DI0701-----------------------
INT 60 u - HP 95LX System Manager - CLOSE CLIPBOARD
DI = 0701h
STACK: 2 WORDs unused dummies (for calls from high level languages)
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0700h,INT 60/DI=0702h
--------b-60----DI0702-----------------------
INT 60 u - HP 95LX System Manager - RESET CLIPBOARD
DI = 0702h
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to ???
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0700h
--------b-60----DI0704-----------------------
INT 60 u - HP 95LX System Manager - "M_NEW_REP" - START A NEW REPRESENTATION???
DI = 0704h
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to ???
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0705h,INT 60/DI=0706h,INT 60/DI=0707h
--------b-60----DI0705-----------------------
INT 60 u - HP 95LX System Manager - CLIPBOARD SERVICE "M_FINI_REP"
DI = 0705h
STACK: 2 WORDs unused dummies (for calls from high level languages)
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0704h
--------b-60----DI0706-----------------------
INT 60 u - HP 95LX System Manager - CLIPBOARD SERVICE "M_REP_NAME"
DI = 0706h
STACK: 2 WORDs unused dummies (for calls from high level languages)
WORD ???
DWORD pointer to ???
DWORD pointer to ???
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0704h,INT 60/DI=0707h
--------b-60----DI0707-----------------------
INT 60 u - HP 95LX System Manager - CLIPBOARD SERVICE "M_REP_INDEX"
DI = 0707h
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to ???
DWORD pointer to ???
DWORD pointer to ???
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0704h,INT 60/DI=0706h
--------b-60----DI0708-----------------------
INT 60 u - HP 95LX System Manager - WRITE TO CLIPBOARD
DI = 0708h
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to data to be written???
WORD length of data???
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0709h
--------b-60----DI0709-----------------------
INT 60 u - HP 95LX System Manager - READ FROM CLIPBOARD
DI = 0709h
STACK: 2 WORDs unused dummies (for calls from high level languages)
WORD ???
WORD ???
DWORD pointer to buffer for data???
WORD length of buffer???
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0708h
--------b-60----DI0800-----------------------
INT 60 u - HP 95LX System Manager - BEEP
DI = 0800h
STACK: 2 WORDs unused dummies (for calls from high level languages)
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0801h,INT 60/DI=0802h,INT 60/DI=0803h
--------b-60----DI0801-----------------------
INT 60 u - HP 95LX System Manager - SOUND SERVICE "M_THUD"
DI = 0801h
STACK: 2 WORDs unused dummies (for calls from high level languages)
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0800h,INT 60/DI=0802h,INT 60/DI=0803h
--------b-60----DI0802-----------------------
INT 60 u - HP 95LX System Manager - MAKE A SOUND PATTERN
DI = 0802h
STACK: 2 WORDs unused dummies (for calls from high level languages)
WORD pattern number (00h-06h)
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0800h,INT 60/DI=0801h,INT 60/DI=0803h
--------b-60----DI0803-----------------------
INT 60 u - HP 95LX System Manager - TURN OFF SOUND
DI = 0803h
STACK: 2 WORDs unused dummies (for calls from high level languages)
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0800h,INT 60/DI=0801h,INT 60/DI=0802h
--------b-60----DI0900-----------------------
INT 60 - HP 95LX System Manager - ALLOCATE REGULAR MEMORY BLOCK
DI = 0900h
STACK: 2 WORDs unused dummies (for calls from high level languages)
WORD size of block in bytes
Return: AX -> memory block
STACK unchanged
Note: System Manager-compliant applications are always small-model (64K code,
64K data)
SeeAlso: INT 15/AX=4DD4h,INT 60/DI=0902h,INT 60/DI=0903h
--------b-60----DI0902-----------------------
INT 60 u - HP 95LX System Manager - FREE REGULAR MEMORY BLOCK
DI = 0902h
STACK: 2 WORDs unused dummies (for calls from high level languages)
WORD offset of memory block???
Return: ???
STACK unchanged
Note: System Manager-compliant applications are always small-model (64K code,
64K data)
SeeAlso: INT 60/DI=0900h,INT 60/DI=0904h
--------b-60----DI0903-----------------------
INT 60 u - HP 95LX System Manager - ALLOCATE LARGE MEMORY BLOCK
DI = 0903h
STACK: 2 WORDs unused dummies (for calls from high level languages)
WORD size of block in bytes???
Return: AX -> memory block???
STACK unchanged
SeeAlso: INT 60/DI=0900h,INT 60/DI=0904h
--------b-60----DI0904-----------------------
INT 60 u - HP 95LX System Manager - FREE LARGE MEMORY BLOCK
DI = 0904h
STACK: 2 WORDs unused dummies (for calls from high level languages)
WORD segment of memory block???
Return: AX -> ???
STACK unchanged
SeeAlso: INT 60/DI=0902h,INT 60/DI=0903h
--------b-60----DI0B00-----------------------
INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_DTINFO"
DI = 0B00h
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to ???
Return: ???
STACK unchanged
--------b-60----DI0B01-----------------------
INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_GETDTM"
DI = 0B01h
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to ???
Return: ???
STACK unchanged
--------b-60----DI0B02-----------------------
INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_SETDTM"
DI = 0B02h
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to ???
Return: ???
STACK unchanged
--------b-60----DI0B03-----------------------
INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_XALARM"
DI = 0B03h
STACK: 2 WORDs unused dummies (for calls from high level languages)
WORD ???
Return: ???
STACK unchanged
--------b-60----DI0B04-----------------------
INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_ALARM"
DI = 0B04h
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to alarm record???
WORD ???
Return: ???
STACK unchanged
Format of alarm record:
Offset Size Description
00h BYTE hour
01h BYTE minute
02h BYTE second
03h BYTE unused padding
04h WORD rescheduling interval, in seconds
06h BYTE are seconds significant?
07h BYTE alarm sound
08h 40 BYTEs message displayed when alarm activates
30h BYTE task ID of owner
31h BYTE application's own use for sub-class
32h 4 BYTEs application's own use for private data
--------b-60----DI0B05-----------------------
INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_START_SW"
DI = 0B05h
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to ???
Return: ???
STACK unchanged
--------b-60----DI0B06-----------------------
INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_GET_SW"
DI = 0B06h
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to ???
DWORD pointer to ???
DWORD pointer to ???
Return: ???
STACK unchanged
--------b-60----DI0B07-----------------------
INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_STOP_SW"
DI = 0B07h
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to ???
Return: ???
STACK unchanged
--------b-60----DI0B08-----------------------
INT 60 u - HP 95LX System Manager - "M_TELLTIME" - DISPLAY TIMESTAMP
DI = 0B08h
STACK: 2 WORDs unused dummies (for calls from high level languages)
WORD timestamp format (see below)
WORD row (-3 is topmost, 0 is first non-reserved line)
WORD column
Return: ???
STACK unchanged
Bitfields for timestamp format:
bits 1-0
00 date only
01 time only
10 date and time
11 day and date
bit 4 supply am/pm
bit 5 supply seconds
bit 6 show year
bit 7 four-digit year
--------b-60----DI0B09-----------------------
INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_GET_SETTINGS"
DI = 0B09h
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to ???
DWORD pointer to ???
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0B0Ah,INT 60/DI=0B0Fh
Format of system settings:
Offset Size Description
00h WORD country code
02h WORD speaker volume (00h-03h or FFh for off)
04h WORD contrast level (00h-0Fh)
06h WORD week start (00h Sunday, 01h Monday)
08h WORD punctuation format
code decimal arg thousands
00h . , ,
01h , . .
02h . ; ;
03h , ; .
04h . , " "
05h , . " "
06h . ; " "
07h , ; " "
0Ah WORD two-character language code (only 5355h = "US" byte-swapped)
0Ch WORD current date format (see below)
0Eh WORD current time format (see below)
10h WORD collating sequence
00h numbers first, 01h letters first, 02h ASCII
12h 80 BYTEs name of picture file
62h 30 BYTEs name
80h 30 BYTEs title
9Eh 28 BYTEs company name
BAh WORD number of languages
BCh 6 BYTEs available languages
C2h 66 BYTEs language menu
104h 2 BYTEs ASCIZ date separator
106h 2 BYTEs ASCIZ time separator
108h BYTE date order
109h BYTE use 24 hour time?
10Ah 16 BYTEs currency string
11Ah WORD currency string position (00h prefix, 01h suffix)
11Ch WORD keyboard (see below)
11Eh WORD printer baud rate
00h 300, 01h 1200, 02h 2400, 03h 4800, 04h 9600, 05h 19200
120h WORD printer driver code
00h Epson FX80, 01h HP Laserjet, 02h IBM ProPrinter
122h WORD printer interface (00h COM1, 01h COM2, 02h IR, 03h LPT1)
124h WORD system manager interrupt (60h by default)
126h WORD code page (01h CP850, 02h CP437)
128h WORD active exit key
12Ah WORD active menu key
12Ch WORD active CHAR key toggle
12Eh 6 BYTEs alarm
Values for current date format:
00h dd-mmm-yy
01h dd-mmm
02h mmm-yy
03h mm/dd/yy
04h dd/mm/yy
05h dd.mm.yy
06h yy-mm-dd
07h mm/dd
08h dd/mm
09h dd.mm
0Ah mm-dd
Values for current time format:
00h HH:MM:SS am/pm
01h HH:MM am/pm
02h HH:MM:SS
03h HH.MM.SS
04h HH,MM,SS
05h HHhMMmSSs
06h HH:MM
07h HH.MM
08h HH,MM
09h HHhMMm
Values for keyboard:
0001h Belgium
0002h French Canadian
0004h Denmark
0008h Finland
0010h French
0020h Finland
0040h Italy
0080h Netherlands
0100h Norway
0200h Portugal
0400h Spain
0800h Sweden
1000h Swiss French
2000h Swiss German
4000h United Kingdom
8000h USA
--------b-60----DI0B0A-----------------------
INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_SET_SETTINGS"
DI = 0B0Ah
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to ???
DWORD pointer to ???
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0B09h
--------b-60----DI0B0B-----------------------
INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_START_TIMER"
DI = 0B0Bh
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to ???
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0B0Ch,INT 60/DI=0B0Dh
--------b-60----DI0B0C-----------------------
INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_STOP_TIMER"
DI = 0B0Ch
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to ???
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0B0Bh,INT 60/DI=0B0Dh
--------b-60----DI0B0D-----------------------
INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_GET_TIMER"
DI = 0B0Dh
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to ???
DWORD pointer to ???
DWORD pointer to ???
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0B0Bh,INT 60/DI=0B0Ch
--------b-60----DI0B0E-----------------------
INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_TELL_ANYTIME"
DI = 0B0Eh
STACK: 2 WORDs unused dummies (for calls from high level languages)
WORD ???
WORD ???
WORD ???
DWORD pointer to ???
DWORD pointer to ???
Return: DX:AX -> ???
STACK unchanged
--------b-60----DI0B0F-----------------------
INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVCE "M_GET_SETTINGS_ADDR"
DI = 0B0Fh
STACK: 2 WORDs unused dummies (for calls from high level languages)
Return: DX:AX -> system settings record (see INT 60/DI=0B09h)
STACK unchanged
SeeAlso: INT 60/DI=0B09h
--------b-60----DI0B10-----------------------
INT 60 u - HP 95LX System Manager - PARSE DATE SPECIFICATION
DI = 0B10h
STACK: 2 WORDs unused dummies (for calls from high level languages)
WORD ???
DWORD pointer to ???
DWORD pointer to ???
Return: ???
STACK unchanged
--------b-60----DI0B11-----------------------
INT 60 u - HP 95LX System Manager - PARSE TIME SPECIFICATION
DI = 0B11h
STACK: 2 WORDs unused dummies (for calls from high level languages)
WORD ???
DWORD pointer to ???
DWORD pointer to ???
Return: ???
STACK unchanged
--------b-60----DI0B12-----------------------
INT 60 u - HP 95LX System Manager - SET DATE PARSING RULE
DI = 0B12h
STACK: 2 WORDs unused dummies (for calls from high level languages)
WORD new parsing rule (see below)
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0B13h
Values for new parsing rule:
01h day-month-year
02h month-day-year
03h year-month-day
04h "DMYO"
05h "MDYO"
OR with 08h to get any year
--------b-60----DI0B13-----------------------
INT 60 u - HP 95LX System Manager - SET TIME PARSING RULE
DI = 0B13h
STACK: 2 WORDs unused dummies (for calls from high level languages)
WORD new parsing rule (see below)
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0B12h
Values for new parsing rule:
01h HH:MM:SS (am/pm)
02h HH:MM:SS (24hr)
03h HHMM:SS (24hr)
04h HH:MM:SS.hh (24hr)
05h HH:MM (am/pm)
06h HH:MM (24hr)
07h HHMM (24hr)
--------b-60----DI0B14-----------------------
INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_POST_TIME"
DI = 0B14h
STACK: 2 WORDs unused dummies (for calls from high level languages)
Return: ???
STACK unchanged
--------b-60----DI0B15-----------------------
INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_DAY_TRIGGER"
DI = 0B15h
STACK: 2 WORDs unused dummies (for calls from high level languages)
WORD ???
Return: ???
STACK unchanged
SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
--------b-60----DI0C00-----------------------
INT 60 u - HP 95LX System Manager - OPEN PRINTER
DI = 0C00h
STACK: 2 WORDs unused dummies (for calls from high level languages)
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0C01h,INT 60/DI=0C02h,INT 60/DI=0C03h
--------b-60----DI0C01-----------------------
INT 60 u - HP 95LX System Manager - CLOSE PRINTER
DI = 0C01h
STACK: 2 WORDs unused dummies (for calls from high level languages)
Return: ???
STACK unchanged
Note: relinquishes control of printer
SeeAlso: INT 60/DI=0C00h
--------b-60----DI0C02-----------------------
INT 60 u - HP 95LX System Manager - WRITE TO PRINTER
DI = 0C02h
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to data to be written
WORD length of data
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0C00h
--------b-60----DI0C03-----------------------
INT 60 u - HP 95LX System Manager - INITIALIZE PRINTER
DI = 0C03h
STACK: 2 WORDs unused dummies (for calls from high level languages)
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0C00h
--------b-60----DI0C04-----------------------
INT 60 u - HP 95LX System Manager - "M_TRANS_PRINTER"
DI = 0C04h
STACK: 2 WORDs unused dummies (for calls from high level languages)
WORD ???
DWORD pointer to ???
Return: ???
STACK unchanged
--------b-60----DI0C05-----------------------
INT 60 u - HP 95LX System Manager - "M_FALL_PRINTER"
DI = 0C05h
STACK: 2 WORDs unused dummies (for calls from high level languages)
WORD ???
DWORD pointer to ???
Return: ???
STACK unchanged
SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
--------b-60----DI0E00-----------------------
INT 60 u - HP 95LX System Manager - COMMUNICATIONS SERVICE "M_COMM_INIT"
DI = 0E00h
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to ???
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0E01h,INT 60/DI=0E02h
Values for error code:
0000h successful
FFF1h "E_BUSY"
FFF2h timeout
FFF3h framing error
FFF4h parity error
FFF5h overrun error
FFF6h "E_EMPTY"
FFF7h "E_CONECT"
FFF8h not open
FFF9h out of memory
FFFAh buffer overflow
FFFBh "E_NOFIT"
FFFCh unsupported
FFFDh "E_IVOPR"
FFFEh "E_IVCHN"
FFFFh "E_REOPEN"
--------b-60----DI0E01-----------------------
INT 60 u - HP 95LX System Manager - OPEN COMMUNICATIONS CHANNEL
DI = 0E01h
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to WORD buffer for comm channel handle
WORD communications line number (01h-04h)
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0E00h,INT 60/DI=0E02h
--------b-60----DI0E02-----------------------
INT 60 u - HP 95LX System Manager - CLOSE COMMUNICATIONS CHANNEL
DI = 0E02h
STACK: 2 WORDs unused dummies (for calls from high level languages)
WORD comm channel handle
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0E00h,INT 60/DI=0E01h
--------b-60----DI0E03-----------------------
INT 60 u - HP 95LX System Manager - "M_COMM_GETMDM"
DI = 0E03h
STACK: 2 WORDs unused dummies (for calls from high level languages)
WORD ???
Return: ???
STACK unchanged
--------b-60----DI0E04-----------------------
INT 60 u - HP 95LX System Manager - "M_COMM_ANSWER"
DI = 0E04h
STACK: 2 WORDs unused dummies (for calls from high level languages)
WORD ???
WORD ???
Return: ???
STACK unchanged
--------b-60----DI0E05-----------------------
INT 60 u - HP 95LX System Manager - "M_COMM_DIAL"
DI = 0E05h
STACK: 2 WORDs unused dummies (for calls from high level languages)
WORD ???
DWORD pointer to ???
Return: ???
STACK unchanged
--------b-60----DI0E06-----------------------
INT 60 u - HP 95LX System Manager - RESET COMMUNICATIONS CHANNEL
DI = 0E06h
STACK: 2 WORDs unused dummies (for calls from high level languages)
WORD comm channel handle
WORD reset options (see below)
Return: ???
STACK unchanged
Bitfields for reset options:
bit 0 reset line
bit 1 flush transmit buffer
bit 2 flush receive buffer
bit 3 reset modem
bit 4 reset receiver's ^S state
bit 5 reset transmitter's ^S state
--------b-60----DI0E07-----------------------
INT 60 u - HP 95LX System Manager - "M_COMM_HANGUP"
DI = 0E07h
STACK: 2 WORDs unused dummies (for calls from high level languages)
WORD ???
Return: ???
STACK unchanged
--------b-60----DI0E08-----------------------
INT 60 u - HP 95LX System Manager - SEND DATA OVER COMM CHANNEL
DI = 0E08h
STACK: 2 WORDs unused dummies (for calls from high level languages)
WORD comm channel handle
DWORD pointer to data to be sent
WORD option flags
bit 0: send partial buffer
bit 1: turn on receiver after sending
DWORD pointer to WORD containing length of data to be sent
Return: length WORD updated to contain number of bytes actually sent???
STACK unchanged
SeeAlso: INT 60/DI=0E09h,INT 60/DI=0E0Bh
--------b-60----DI0E09-----------------------
INT 60 u - HP 95LX System Manager - QUERY COMM CHANNEL TRANSMIT QUEUE
DI = 0E09h
STACK: 2 WORDs unused dummies (for calls from high level languages)
WORD ???
DWORD pointer to ??? WORD
DWORD pointer to ??? WORD
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0E0Ah
--------b-60----DI0E0A-----------------------
INT 60 u - HP 95LX System Manager - QUERY COMM CHANNEL RECEIVE QUEUE
DI = 0E0Ah
STACK: 2 WORDs unused dummies (for calls from high level languages)
WORD comm channel handle
DWORD pointer to WORD to get receive buffer size
DWORD pointer to WORD to get free bytes in receive buffer
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0E09h,INT 60/DI=0E0Bh
--------b-60----DI0E0B-----------------------
INT 60 u - HP 95LX System Manager - RECEIVE DATA FROM COMM CHANNEL
DI = 0E0Bh
STACK: 2 WORDs unused dummies (for calls from high level languages)
WORD comm channel handle
DWORD pointer to data buffer
DWORD pointer to WORD (input) length of data buffer
(output) number of bytes received
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0E08h,INT 60/DI=0E0Ah
--------b-60----DI0E0C-----------------------
INT 60 u - HP 95LX System Manager - "M_COMM_HAZCMD"
DI = 0E0Ch
STACK: 2 WORDs unused dummies (for calls from high level languages)
WORD ???
DWORD pointer to ???
WORD ???
Return: ???
STACK unchanged
--------b-60----DI0E0D-----------------------
INT 60 u - HP 95LX System Manager - "M_COMM_COMAND"
DI = 0E0Dh
STACK: 2 WORDs unused dummies (for calls from high level languages)
WORD ???
DWORD pointer to ???
WORD ???
Return: ???
STACK unchanged
--------b-60----DI0E0E-----------------------
INT 60 u - HP 95LX System Manager - "M_COMM_BREAK"
DI = 0E0Eh
STACK: 2 WORDs unused dummies (for calls from high level languages)
WORD ???
WORD ???
Return: ???
STACK unchanged
--------b-60----DI0E0F-----------------------
INT 60 u - HP 95LX System Manager - "M_COMM_FRCXON"
DI = 0E0Fh
STACK: 2 WORDs unused dummies (for calls from high level languages)
WORD ???
Return: ???
STACK unchanged
--------b-60----DI0E10-----------------------
INT 60 u - HP 95LX System Manager - "M_COMM_FRCXOF"
DI = 0E10h
STACK: 2 WORDs unused dummies (for calls from high level languages)
WORD ???
Return: ???
STACK unchanged
--------b-60----DI0E11-----------------------
INT 60 u - HP 95LX System Manager - "M_COMM_SETDTR"
DI = 0E11h
STACK: 2 WORDs unused dummies (for calls from high level languages)
WORD ???
WORD ???
Return: ???
STACK unchanged
--------b-60----DI0E12-----------------------
INT 60 u - HP 95LX System Manager - "M_COMM_XMITNG"
DI = 0E12h
STACK: 2 WORDs unused dummies (for calls from high level languages)
WORD ???
Return: ???
STACK unchanged
--------b-60----DI0E13-----------------------
INT 60 u - HP 95LX System Manager - "M_COMM_STATUS"
DI = 0E13h
STACK: 2 WORDs unused dummies (for calls from high level languages)
WORD ???
Return: ???
STACK unchanged
--------b-60----DI0E14-----------------------
INT 60 u - HP 95LX System Manager - SET COMMUNICATIONS SETTINGS
DI = 0E14h
STACK: 2 WORDs unused dummies (for calls from high level languages)
WORD comm channel handle
DWORD pointer to comm settings (see below)
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0E15h
Format of comm settings:
Offset Size Description
00h BYTE dial type ('T' tone, 'P' pulse)
01h WORD baud rate divisor (115200/baud_rate)
03h BYTE parity (00h none, 08h odd, 18h even, 28h mark, 38h space)
04h BYTE stop bits (00h one, 04h two)
05h BYTE data bits - 5
06h BYTE software handshake
01h none, 02h XOFF/XON, 04h XOFF/any, 08h ENQ/ACK
07h BYTE infrared (01h off, 02h on)
08h BYTE duplex (01h half, 02h full)
09h BYTE echo (01h echo, 02h no echo)
--------b-60----DI0E15-----------------------
INT 60 u - HP 95LX System Manager - GET COMMUNICATIONS SETTINGS
DI = 0E15h
STACK: 2 WORDs unused dummies (for calls from high level languages)
WORD ???
DWORD pointer to buffer for settings (see INT 60/DI=0E14h)
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0E14h
--------b-60----DI0E16-----------------------
INT 60 u - HP 95LX System Manager - "M_COMM_CNFGUR"
DI = 0E16h
STACK: 2 WORDs unused dummies (for calls from high level languages)
WORD ???
WORD ???
WORD ???
WORD ???
WORD ???
Return: ???
STACK unchanged
--------b-60----DI0E17-----------------------
INT 60 u - HP 95LX System Manager - "M_COMM_QRYERR"
DI = 0E17h
STACK: 2 WORDs unused dummies (for calls from high level languages)
WORD ???
Return: ???
STACK unchanged
SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
--------b-60----DI0F00-----------------------
INT 60 u - HP 95LX System Manager - "M_ERRMSG"
DI = 0F00h
STACK: 2 WORDs unused dummies (for calls from high level languages)
WORD ???
DWORD pointer to ???
WORD ???
DWORD pointer to ???
Return: ???
STACK unchanged
--------b-60----DI0F01-----------------------
INT 60 u - HP 95LX System Manager - DRAW STANDARD TITLE BOX
DI = 0F01h
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to ASCIZ title string
Return: ???
STACK unchanged
--------b-60----DI0F02-----------------------
INT 60 u - HP 95LX System Manager - "SHOWNAME"
DI = 0F02h
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to ???
Return: ???
STACK unchanged
--------b-60----DI0F03-----------------------
INT 60 u - HP 95LX System Manager - DISPLAY TWO-LINE MESSAGE BOX
DI = 0F03h
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to first line of message
WORD length of first line
DWORD pointer to second line of message
WORD length of second line
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0300h,INT 60/DI=0F04h,INT 60/DI=0F09h
--------b-60----DI0F04-----------------------
INT 60 u - HP 95LX System Manager - REMOVE MESSAGE BOX
DI = 0F04h
STACK: 2 WORDs unused dummies (for calls from high level languages)
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0F03h,INT 60/DI=0F09h
--------b-60----DI0F05-----------------------
INT 60 u - HP 95LX System Manager - "M_COM_TIMER_ADDR"
DI = 0F05h
STACK: 2 WORDs unused dummies (for calls from high level languages)
Return: DX:AX -> ???
STACK unchanged
--------b-60----DI0F06-----------------------
INT 60 u - HP 95LX System Manager - "M_COM_TIMER_COUNT_ADDR"
DI = 0F06h
STACK: 2 WORDs unused dummies (for calls from high level languages)
Return: DX:AX -> ???
STACK unchanged
--------b-60----DI0F07-----------------------
INT 60 u - HP 95LX System Manager - "M_SYS_RSRC_ADDR"
DI = 0F07h
STACK: 2 WORDs unused dummies (for calls from high level languages)
Return: DX:AX -> ???
STACK unchanged
--------b-60----DI0F08-----------------------
INT 60 u - HP 95LX System Manager - "M_BIOS_OUTSTR"
DI = 0F08h
STACK: 2 WORDs unused dummies (for calls from high level languages)
???
Return: ???
STACK unchanged
--------b-60----DI0F09-----------------------
INT 60 u - HP 95LX System Manager - DISPLAY THREE-LINE MESSAGE BOX
DI = 0F09h
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to first line of message
WORD length of first line
DWORD pointer to second line of message
WORD length of second line
DWORD pointer to third line of message
WORD length of third line
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0F03h,INT 60/DI=0F04h
--------b-60----DI0F0A-----------------------
INT 60 u - HP 95LX System Manager - DISABLE MACROS
DI = 0F0Ah
STACK: 2 WORDs unused dummies (for calls from high level languages)
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0F0Bh
--------b-60----DI0F0B-----------------------
INT 60 u - HP 95LX System Manager - ENABLE MACROS
DI = 0F0Bh
STACK: 2 WORDs unused dummies (for calls from high level languages)
Return: ???
STACK unchanged
SeeAlso: INT 60/DI=0F0Ah
--------b-60----DI0F0C-----------------------
INT 60 u - HP 95LX System Manager - "M_DATE_TIME_SEPS"
DI = 0F0Ch
STACK: 2 WORDs unused dummies (for calls from high level languages)
???
Return: ???
STACK unchanged
--------b-60----DI0F0D-----------------------
INT 60 u - HP 95LX System Manager - "M_FORM_FT"
DI = 0F0Dh
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to ???
Return: DX:AX -> ???
STACK unchanged
--------b-60----DI0F0E-----------------------
INT 60 u - HP 95LX System Manager - "M_RAM_IV_INFO"
DI = 0F0Eh
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to ???
Return: DX:AX -> ???
STACK unchanged
SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
--------b-60----DI1005-----------------------
INT 60 u - HP 95LX System Manager - "M_DIRTY_SYNC" - FORCE SCREEN UPDATE
DI = 1005h
STACK: 2 WORDs unused dummies (for calls from high level languages)
Return: ???
STACK unchanged
SeeAlso: INT 10/AH=FFh,INT 60/DI=0300h,INT 60/DI=0301h
--------b-60----DI1200-----------------------
INT 60 u - HP 95LX System Manager - RESOURCE SERVICE "MAP_RESOURCE_FILE"
DI = 1200h
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to ???
Return: ???
STACK unchanged
--------b-60----DI1201-----------------------
INT 60 u - HP 95LX System Manager - "GET_RESOURCE_PTR"
DI = 1201h
STACK: 2 WORDs unused dummies (for calls from high level languages)
WORD ???
Return: DX:AX -> ???
STACK unchanged
SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
--------b-60----DI1202-----------------------
INT 60 u - HP 95LX System Manager - "GET_RSRC_TAB_PTR"
DI = 1202h
STACK: 2 WORDs unused dummies (for calls from high level languages)
Return: DX:AX -> ???
STACK unchanged
--------b-60----DI1203-----------------------
INT 60 u - HP 95LX System Manager - "INIT_SYSGMR_RSRCS"
DI = 1203h
STACK: 2 WORDs unused dummies (for calls from high level languages)
Return: ???
STACK unchanged
--------b-60----DI1300-----------------------
INT 60 u - HP 95LX System Manager - INITIALIZE HELP SYSTEM
DI = 1300h
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to ???
DWORD pointer to ???
WORD ???
Return: ???
STACK unchanged
--------b-60----DI1301-----------------------
INT 60 u - HP 95LX System Manager - DISPLAY HELP
DI = 1301h
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to ???
Return: ???
STACK unchanged
--------b-60----DI1302-----------------------
INT 60 u - HP 95LX System Manager - "M_HELP_KEY"
DI = 1302h
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to ???
WORD ???
Return: ???
STACK unchanged
--------b-60----DI1303-----------------------
INT 60 u - HP 95LX System Manager - "M_HELP_TERM"
DI = 1303h
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to ???
Return: ???
STACK unchanged
SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
--------b-60----DI1400-----------------------
INT 60 u - HP 95LX System Manager - "M_ColInit"
DI = 1400h
STACK: 2 WORDs unused dummies (for calls from high level languages)
Return: AX = ???
STACK unchanged
--------b-60----DI1401-----------------------
INT 60 u - HP 95LX System Manager - "M_ColCpStr"
DI = 1401h
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to ???
WORD ???
DWORD pointer to ???
WORD ???
Return: ???
STACK unchanged
--------b-60----DI1402-----------------------
INT 60 u - HP 95LX System Manager - "M_ColLicsStr"
DI = 1402h
STACK: 2 WORDs unused dummies (for calls from high level languages)
???
Return: ???
STACK unchanged
--------b-60----DI1403-----------------------
INT 60 u - HP 95LX System Manager - "M_ColLicsChar"
DI = 1403h
STACK: 2 WORDs unused dummies (for calls from high level languages)
???
Return: ???
STACK unchanged
--------b-60----DI1404-----------------------
INT 60 u - HP 95LX System Manager - "M_ColToLower"
DI = 1404h
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to ???
WORD ???
Return: ???
STACK unchanged
--------b-60----DI1405-----------------------
INT 60 u - HP 95LX System Manager - "M_ColCpSearch"
DI = 1405h
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to ???
WORD ???
DWORD pointer to ???
WORD ???
WORD ???
Return: ???
STACK unchanged
--------b-60----DI1406-----------------------
INT 60 u - HP 95LX System Manager - "M_ColToUpper"
DI = 1406h
STACK: 2 WORDs unused dummies (for calls from high level languages)
DWORD pointer to ???
WORD ???
Return: ???
STACK unchanged
SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
--------b-60----DI1500-----------------------
INT 60 u - HP 95LX System Manager - "GrDispInit"
DI = 1500h
STACK: 2 WORDs unused dummies (for calls from high level languages)
???
Return: ???
STACK unchanged
--------b-60----DI1501-----------------------
INT 60 u - HP 95LX System Manager - "GrDispClear"
DI = 1501h
STACK: 2 WORDs unused dummies (for calls from high level languages)
???
Return: ???
STACK unchanged
--------b-60----DI1502-----------------------
INT 60 u - HP 95LX System Manager - "GrDispDot"
DI = 1502h
STACK: 2 WORDs unused dummies (for calls from high level languages)
???
Return: ???
STACK unchanged
--------b-60----DI1503-----------------------
INT 60 u - HP 95LX System Manager - "GrDispDraw"
DI = 1503h
STACK: 2 WORDs unused dummies (for calls from high level languages)
???
Return: ???
STACK unchanged
--------b-60----DI1504-----------------------
INT 60 u - HP 95LX System Manager - "GrDispFill"
DI = 1504h
STACK: 2 WORDs unused dummies (for calls from high level languages)
???
Return: ???
STACK unchanged
--------b-60----DI1505-----------------------
INT 60 u - HP 95LX System Manager - "GrDispRead"
DI = 1505h
STACK: 2 WORDs unused dummies (for calls from high level languages)
???
Return: ???
STACK unchanged
--------b-60----DI1506-----------------------
INT 60 u - HP 95LX System Manager - "GrDispString"
DI = 1506h
STACK: 2 WORDs unused dummies (for calls from high level languages)
???
Return: ???
STACK unchanged
--------b-60----DI1507-----------------------
INT 60 u - HP 95LX System Manager - "GrDispPan"
DI = 1507h
STACK: 2 WORDs unused dummies (for calls from high level languages)
???
Return: ???
STACK unchanged
--------b-60----DI1508-----------------------
INT 60 u - HP 95LX System Manager - "GrDispZoom"
DI = 1508h
STACK: 2 WORDs unused dummies (for calls from high level languages)
???
Return: ???
STACK unchanged
--------b-60----DI1509-----------------------
INT 60 u - HP 95LX System Manager - "GrDispSave"
DI = 1509h
STACK: 2 WORDs unused dummies (for calls from high level languages)
???
Return: ???
STACK unchanged
--------b-60----DI150A-----------------------
INT 60 u - HP 95LX System Manager - "GrDispRestore"
DI = 150Ah
STACK: 2 WORDs unused dummies (for calls from high level languages)
???
Return: ???
STACK unchanged
--------b-60----DI150B-----------------------
INT 60 u - HP 95LX System Manager - "GrDispCorner"
DI = 150Bh
STACK: 2 WORDs unused dummies (for calls from high level languages)
???
Return: ???
STACK unchanged
SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
--------b-60----DI1604-----------------------
INT 60 u - HP 95LX System Manager - "CP_TO_LICS"
DI = 1604h
STACK: 2 WORDs unused dummies (for calls from high level languages)
???
Return: ???
STACK unchanged
SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
--------G-6000-------------------------------
INT 60 - SYS_PROF.EXE - PROFILER STATUS
AH = 00h
Return: AX = 0000h profiling is off
otherwise profiling is on
Note: SYS_PROF.EXE is the TSR portion of a profiler from Micro Cornucopia #47
SeeAlso: AH=01h"SYS_PROF",02h"SYS_PROF"
--------G-6000-------------------------------
INT 60 - MDEBUG - GET STATUS
AH = 00h
DS:SI -> password or a null byte
Return: AX = return code
FFFEh password is invalid
FFFDh display mode is invalid
else successful
ES = value of the monitor register SE
DI = value of the monitor register OF
CH = monitor color
CL = interpreter color
BH = monitor start line
BL = interpreter start line
AH = makecode of the hotkey
AL = ASCII code of the hotkey
DL = status of special keys (only SHIFT, ALT, CTRL) for the
hotkey (coded as for the keyboard flag at 0040h:0017h)
DH = basic process number for the communication with drivers
process number for the display driver, DH+1 = process
number for the command driver(s)
DS:SI -> MDEBUG identification table
Program: MDEBUG is a shareware memory-resident debugging tool by Bernd
Schemmer, including a memory monitor, an interpreter, and a
disassembler
Notes: MDEBUG uses INT 60 by default, but may be directed to any of INT 60
through INT 67; the interrupt handler is preceded by the signature
"USERINT" and is not chained
if DS:SI points at a null byte, MDEBUG will prompt for a password if
passwords are active; enough stack space must be provided for an
INT 10h call (which MDEBUG uses while prompting for the password)
SeeAlso: AH=02h"MDEBUG"
Format of MDEBUG identification table:
Offset Size Description
-2 WORD entry offset
00h WORD CS of MDEBUG
02h DWORD old INT 08h vector
06h DWORD old INT 09h vector
0Ah DWORD address INT 16h routine used by MDEBUG
0Eh BYTE length of version string
0Fh N BYTEs version string
--------G-6001-------------------------------
INT 60 - MDEBUG - GET ADDRESS OF THE HELP REGISTERS
AH = 01h
DS:SI -> password or a null byte
Return: AX = return code
FFFEh password is invalid
FFFDh display mode is invalid
else successful
ES:DI point to the help registers of MDEBUG
ES:DI-02h -> R0 (WORD)
ES:DI -> R1 (WORD)
ES:DI+02h -> R2 (WORD)
ES:DI+04h -> R3 (WORD)
...
ES:DI+0Eh -> R8 (WORD)
--------G-6001-------------------------------
INT 60 - SYS_PROF.EXE - TURN PROFILING OFF
AH = 01h
Note: SYS_PROF.EXE is the TSR portion of a profiler from Micro Cornucopia #47
SeeAlso: AH=00h"SYS_PROF",02h"SYS_PROF"
--------N-6001FF-----------------------------
INT 60 - FTP Packet Driver - BASIC FUNC - GET DRIVER INFO
AX = 01FFh
BX = handle returned by function 02h
Return: CF set on error
DH = error code (see below)
CF clear if successful
BX = version
CH = network interface class (see below)
DX = interface type (see below)
CL = number
DS:SI -> name
AL = driver functions supported
01h basic
02h basic and extended
05h basic and high-performance
06h basic, high-performance, and extended
FFh not installed
Note: the handle in BX is optional for drivers written to v1.07 or later of
the packet driver specification
Values for error code:
01h "BAD_HANDLE" invalid handle number
02h "NO_CLASS" no interfaces of the specified class found
03h "NO_TYPE" no interfaces of the specified type found
04h "NO_NUMBER" no interfaces of the specified number found
05h "BAD_TYPE" bad packet type
06h "NO_MULTICAST" interface does not support multicast messages
07h "CANT_TERMINATE" this packet driver cannot terminate
08h "BAD_MODE" invalid receiver mode
09h "NO_SPACE" insufficient space
0Ah "TYPE_INUSE" type accessed but never released
0Bh "BAD_COMMAND" bad command
0Ch "CANT_SEND" packet could not be sent
0Dh "CANT_SET" hardware address could not be changed
0Eh "BAD_ADDRESS" hardware address has a bad length or format
0Fh "CANT_RESET" could not reset interface
Values for Network Interface classes/types:
Class 01h Ethernet/IEEE 802.3
01h 3COM 3C500/3C501
02h 3COM 3C505
03h MICOM-Interlan NI5010
04h BICC Data Networks 4110
05h BICC Data Networks 4117
06h MICOM-Interlan NP600
08h Ungermann-Bass PC-NIC
09h Univation NC-516
0Ah TRW PC-2000
0Bh MICOM-Interlan NI5210
0Ch 3COM 3C503
0Dh 3COM 3C523
0Eh Western Digital WD8003
0Fh Spider Systems S4
10h Torus Frame Level
11h 10Net Communications
12h Gateway PC-bus
13h Gateway AT-bus
14h Gateway MCA-bus
15h IMC PCnic
16h IMC PCnic II
17h IMC PCnic 8-bit
18h Tigan Communications
19h Micromatic Research
1Ah Clarkson "Multiplexor"
1Bh D-Link 8-bit
1Ch D-Link 16-bit
1Dh D-Link PS/2
1Eh Research Machines 8
1Fh Research Machines 16
20h Research Machines MCA
21h Radix Microsystems EXM1 16-bit
22h Interlan Ni9210
23h Interlan Ni6510
24h Vestra LANMASTER 16-bit
25h Vestra LANMASTER 8-bit
26h Allied Telesis PC/XT/AT
27h Allied Telesis NEC PC-98
28h Allied Telesis Fujitsu FMR
29h Ungermann-Bass NIC/PS2
2Ah Tiara LANCard/E AT
2Bh Tiara LANCard/E MC
2Ch Tiara LANCard/E TP
2Dh Spider Communications SpiderComm 8
2Eh Spider Communications SpiderComm 16
2Fh AT&T Starlan NAU
30h AT&T Starlan-10 NAU
31h AT&T Ethernet NAU
32h Intel smart card
33h Xircom Packet Adapter
34h Aquila Ethernet
35h Novell NE1000
36h Novell NE2000
37h SMC PC-510
38h AT&T Fiber NAU
39h NDIS to Packet Driver adapter
3Ah Racal-InterLan ES3210
3Bh General Systems ISDN simulated Ethernet
3Ch Hewlett-Packard
3Dh IMC EtherNic-8
3Eh IMC EtherNic-16
3Fh IMC EtherNic-MCA
40h NetWorth EtherNext
41h Dataco Scanet
42h DEC DEPCA
43h C-Net
44h Gandalf LANLine
45h Apricot built-in
46h David Systems Ether-T
47h ODI to Packet Driver adapter
48h AMD Am21110-16
49h Intel ICD Network controller family
4Ah Intel ICD PCL2
4Bh Intel ICD PCL2A
4Ch AT&T LANPacer
4Dh AT&T LANPacer+
4Eh AT&T EVB
4Fh AT&T StarStation
50h SLIP simulated ethernet
51h Racal-Interlan NIA310
52h Racal-Interlan NISE
53h Racal-Interlan NISE30
54h Racal-Interlan NI6610
55h Ethernet over IP/UDP
Class 02h ProNET-10
01h Proteon p1300
02h Proteon p1800
Class 03h IEEE 802.5/ProNet-4
01h IBM Token-Ring Adapter
02h Proteon p1340
03h Proteon p1344
04h Gateway PC-bus
05h Gateway AT-bus
06h Gateway MCA-bus
39h NDIS to Packet Driver adapter
47h ODI to Packet Driver adapter
Class 04h Omninet
Class 05h Appletalk
01h ATALK.SYS adapter
Class 06h Serial Line
01h Clarkson 8250-SLIP
02h Clarkson "Multiplexor"
Class 07h StarLAN (subsumed by Ethernet class)
Class 08h ARCnet
01h Datapoint RIM
Class 09h AX.25
01h Ottawa PI card
Class 0Ah KISS
Class 0Bh IEEE 802.3 with 802.2 headers
types same as for class 01h
Class 0Ch FDDI with 802.2 headers
01h Western Digital
02h Frontier Technology
Class 0Dh Internet X.25
01h Western Digital
02h Frontier Technology
Class 0Eh N.T. LANSTAR (encapsulating DIX Ethernet)
01h NT LANSTAR/8
02h NT LANSTAR/MC
Class 0Fh SLFP (MIT serial specification)
01h MERIT
Class 10h PPP (Point-to-Point Protocol)
Note: class and type numbers are cleared through FTP Software
--------G-6002-------------------------------
INT 60 - MDEBUG - SET STATUS
AH = 02h
DS:SI -> password or a null byte
ES = new value for the register SE
DI = new value for the register OF
CH = new monitor color if nonzero
CL = new interpreter color if nonzero
BH = new monitor start line if nonzero
BL = new interpreter start line if nonzero
AL = new ASCII code for the hotkey ('A'..'Z', 'a'..'z') if nonzero
DL = new status of the special keys (SHIFT, ALT, CTRL) for the hotkey
if nonzero
DH = if nonzero, new basic process number for communication with the
drivers (DH = multiplex number for the display driver,
DH+1 = multiplex number for the command driver or drivers)
Return: AX = return code
FFFFh call not allowed
FFFEh password is invalid
FFFDh display mode is invalid
0000h successful, status changed
else AL = error code
bit 0 invalid monitor start line
1 invalid interpreter start line
2 invalid hotkey
3 invalid process number
4-7 reserved
Note: the values of the registers SE and OF are always changed, the other
values are only changed if they are valid
SeeAlso: AH=00h"MDEBUG"
--------N-6002-------------------------------
INT 60 - FTP Packet Driver - BASIC FUNC - ACCESS TYPE
AH = 02h
AL = interface class
BX = interface type
DL = interface number
DS:SI -> type
CX = length of type (0000h for all packets)
ES:DI -> receiver
Return: CF set on error
DH = error code (see AX=01FFh)
CF clear if successful
AX = handle
SeeAlso: AH=03h"FTP"
Receiver is called with:
AX = subfunction
00h get packet buffer
DX = lookahead length (v1.10+)
DS:SI -> lookahead buffer if DX nonzero (v1.10+)
DI = error flags (class dependent) (v1.10+)
Return: ES:DI -> packet buffer
0000h:0000h means throw away packet
CX = size of buffer (v1.10+), may be smaller than
incoming data
01h copy completed
DS:SI -> buffer
CX = bytes actually copied (v1.10+)
BX = handle
CX = buffer length
when a packet is received
--------G-6002-------------------------------
INT 60 - SYS_PROF.EXE - TURN PROFILING ON
AH = 02h
Note: SYS_PROF.EXE is the TSR portion of a profiler from Micro Cornucopia #47
SeeAlso: AH=00h"SYS_PROF",01h"SYS_PROF"
--------G-6003-------------------------------
INT 60 - MDEBUG - POP UP
AH = 03h
DS:SI -> password or a null byte
ES -> new value for the register SE
DI -> new value for the register OF
Return: AX = return code
FFFFh call not allowed
FFFEh password is invalid
FFFDh display mode is invalid
else successful
SeeAlso: AH=04h"MDEBUG"
--------N-6003-------------------------------
INT 60 - FTP Packet Driver - BASIC FUNC - RELEASE TYPE
AH = 03h
BX = handle
Return: CF set on error
DH = error code (see AX=01FFh)
CF clear if successful
SeeAlso: AH=02h"FTP"
--------G-6003-------------------------------
INT 60 - SYS_PROF.EXE - GET ADDRESS OF PROFILING TABLE
AH = 03h
Return: ES:BX -> profiling table
Note: SYS_PROF.EXE is the TSR portion of a profiler from Micro Cornucopia #47
SeeAlso: AH=04h"SYS_PROF"
--------N-6004-------------------------------
INT 60 - FTP Packet Driver - BASIC FUNC - SEND PACKET
AH = 04h
DS:SI -> buffer
CX = length
Return: CF set on error
DH = error code (see AX=01FFh)
CF clear if successful
Note: the buffer may be modified immediately upon return from this call
SeeAlso: AH=0Bh
--------G-6004-------------------------------
INT 60 - MDEBUG - POP UP
AH = 04h
DS:SI -> password or a null byte
Return: AX = return code
FFFFh call not allowed
FFFEh password is invalid
FFFDh display mode is invalid
else successful
SeeAlso: AH=03h"MDEBUG",AH=07h"MDEBUG"
--------G-6004-------------------------------
INT 60 - SYS_PROF.EXE - CLEAR PROFILING TABLE
AH = 04h
Note: SYS_PROF.EXE is the TSR portion of a profiler from Micro Cornucopia #47
SeeAlso: AH=03h"SYS_PROF"
--------N-6005-------------------------------
INT 60 - FTP Packet Driver - BASIC FUNC - TERMINATE DRIVER FOR HANDLE
AH = 05h
BX = handle (optional for v1.10+)
Return: CF set on error
DH = error code (see AX=01FFh)
CF clear if successful
--------G-6005-------------------------------
INT 60 - MDEBUG - GET AND SET MDEBUG FLAGS
AH = 05h
DS:SI -> password or a null byte
BL = new value for the semaphor of MDEBUG
00h enable popup of MDEBUG
else disable popup of MDEBUG
Return: AX = return code
FFFEh password is invalid
FFFDh display mode is invalid
else successful
BL = old value of the semapor of MDEBUG
BH = old value of the INT 08h semaphor
(this semaphor is always reset after this function)
--------N-6006-------------------------------
INT 60 - FTP Packet Driver - BASIC FUNC - GET ADDRESS
AH = 06h
BX = handle (optional for v1.10+)
ES:DI -> buffer
CX = length
Return: CF set on error
DH = error code (see AX=01FFh)
CF clear if successful
CX = length
Note: copies the local net address associated with the handle into the buffer
--------G-6006-------------------------------
INT 60 - MDEBUG - GET PASSWORD STATUS
AH = 06h
Return: AL = status
00h password inactive
01h password active
--------N-6007-------------------------------
INT 60 - FTP Packet Driver - BASIC FUNC - RESET INTERFACE
AH = 07h
BX = handle (optional for v1.10+)
Return: CF set on error
DH = error code (see AX=01FFh)
CF clear if successful
--------G-6007-------------------------------
INT 60 - MDEBUG v1.70+ - GET ACTIVE PART OF MDEBUG
AH = 07h
Return: AL = active part for the next popup session of MDEBUG:
bit 0: the next popup session will start in the interpreter rather
than in the monitor
bit 1: the next popup session will sart in the online-help
SeeAlso: AH=03h"MDEBUG",AH=04h"MDEBUG"
--------G-6008-------------------------------
INT 60 - MDEBUG - UNUSED
AH = 08h-FFh
Return: AX = FFFCh
--------N-600A-------------------------------
INT 60 - FTP Packet Driver 1.09+ - HIGH-PERF FUNC - GET PARAMETERS
AH = 0Ah
Return: CF set on error
DH = error code (0Bh) (see AX=01FFh)
CF clear if successful
ES:DI -> parameter table (see below)
Format of parameter table:
Offset Size Description
00h BYTE major revision of packet driver spec driver conforms to
01h BYTE minor revision of packet driver spec
02h BYTE length of this structure in bytes
03h BYTE length of a MAC-layer address
04h WORD maximum transfer unit, including MAC headers
06h WORD buffer size for multicast addr
08h WORD number of receive buffers (one less than back-to-back MTU rcvs)
0Ah WORD number of transmit buffers
0Ch WORD interrupt number to hook for post-EOI processing, 00h=none
--------N-600B-------------------------------
INT 60 - FTP Packet Driver 1.09 - HIGH-PERF FUNC - ASYNCHRONOUS SEND PACKET
AH = 0Bh
DS:SI -> buffer
CX = length of buffer
ES:DI -> FAR function to call when buffer becomes available
Return: CF set on error
DH = error code (0Bh,0Ch) (see AX=01FFh)
CF clear if successful
Notes: unlike function 04h, the buffer is not available for modification as
soon as the call returns; the buffer may be queued by the driver and
not processed until later
this function has been dropped from v1.10+ of the specification and
replaced by function 0Ch
SeeAlso: AH=04h"Packet Driver",AH=0Ch"Packet Driver"
Completion function called with:
AX = result
00h copy OK
nonzero error
ES:DI -> buffer passed to INT 60/AH=0Bh call
--------N-600C-------------------------------
INT 60 - FTP Packet Driver 1.10+ - HIGH-PERF FUNC - ASYNCHRONOUS SEND PACKET
AH = 0Ch
ES:DI -> pointer to IOCB
Return: CF set on error
DH = error code (see AX=01FFh)
CF clear if successful
SeeAlso: AH=04h"Packet Driver",AH=0Bh"Packet Driver"
Format of IOCB:
Offset Size Description
00h DWORD pointer to buffer
04h WORD length of buffer
06h BYTE flags
bit 0: packet driver is finished with IOCB
bit 1: application requests upcall when driver completes
07h DWORD function address for upcall
0Bh 4 BYTEs future gather write
0Fh BYTE ???
10h 8 BYTEs private driver workspace
Completion function called with:
ES:DI -> IOCB passed to INT 60/AH=0Ch
--------N-600C-------------------------------
INT 60 - Banyan VINES, 3com - GET STATION ADDRESS
AH = 0Ch
Return: AL = status
00h successful
ES:SI -> 6-byte station address
02h semaphore service is unavailable
--------N-600D-------------------------------
INT 60 - FTP Packet Driver 1.10+ - HIGH-PERF FUNC - DROP PACKET FROM QUEUE
AH = 0Dh
ES:DI -> IOCB
Return: CF set on error
DH = error code (see AX=01FFh)
CF clear if successful
SeeAlso: AH=0Ch"Packet Driver"
--------N-6011-------------------------------
INT 60 - 3com, 10NET, Banyan VINES - LOCK AND WAIT
AH = 11h
AL = drive number or 0
DX = number of seconds to wait
ES:SI = Ethernet address or 0
DS:BX -> 31-byte ASCIZ semaphore name
Return: AL = status
00h successful
01h timeout
02h server not responding
03h invalid semaphore name
04h semaphore list is full
05h invalid drive ID
06h invalid Ethernet address
07h not logged in
08h write to network failed
09h semaphore already logged for this CPU
SeeAlso: AH=12h,AH=13h
--------N-6012-------------------------------
INT 60 - 3com, 10NET, Banyan VINES - LOCK
AH = 12h
AL = drive number or 00h
ES:SI = Ethernet address or 0000h:0000h
DS:BX -> 31-byte ASCIZ semaphore name
Return: AL = status (see also AH=11h)
01h semaphore currently locked by another PC
Note: unlike function 11h, this function returns immediately
SeeAlso: AH=11h,AH=13h
--------N-6013-------------------------------
INT 60 - 3com, 10NET, Banyan VINES - UNLOCK
AH = 13h
AL = drive number or 00h
ES:SI = Ethernet address or 0000h:0000h
DS:BX -> 31-byte ASCIZ semaphore name
Return: AL = status (see also AH=11h)
1 semaphore not locked
SeeAlso: AH=11h,AH=12h
--------N-6014-------------------------------
INT 60 - FTP Packet Driver - EXTENDED FUNC - SET RECEIVE MODE
AH = 14h
BX = handle (optional for v1.10+)
CX = mode
01h turn off receiver
02h receive only packets sent to this interface
03h mode 2 plus broadcast packets
04h mode 3 plus limited multicast packets
05h mode 3 plus all multicast packets
06h all packets
07h raw mode for serial line only (v1.10+)
Return: CF set on error
DH = error code (01h,08h) (see AX=01FFh)
CF clear if successful
SeeAlso: AH=15h
--------N-6015-------------------------------
INT 60 - FTP Packet Driver - EXTENDED FUNC - GET RECEIVE MODE
AH = 15h
BX = handle (optional for v1.10+)
Return: CF set on error
DH = error code (01h) (see AX=01FFh)
CF clear if successful
AX = mode
SeeAlso: AH=14h
--------N-6016-------------------------------
INT 60 - FTP Packet Driver - EXTENDED FUNC - SET MULTICAST LIST
AH = 16h
ES:DI -> multicast list
CX = length of list in bytes
Return: CF set on error
DH = error code (06h,09h,0Eh) (see AX=01FFh)
CF clear if successful
SeeAlso: AH=17h
--------N-6017-------------------------------
INT 60 - FTP Packet Driver - EXTENDED FUNC - GET MULTICAST LIST
AH = 17h
Return: CF set on error
DH = error code (06h,09h) (see AX=01FFh)
CF clear if successful
ES:DI -> multicast addresses (do not modify)
CX = bytes of multicast addresses currently in use
SeeAlso: AH=16h
--------N-6018-------------------------------
INT 60 - FTP Packet Driver - EXTENDED FUNC - GET STATISTICS
AH = 18h
BX = handle (optional for v1.10+)
Return: CF set on error
DH = error code (01h) (see AX=01FFh)
CF clear if successful
DS:SI -> statistics (see below)
Format of statistics:
Offset Size Description
00h DWORD packets in
04h DWORD packets out
08h DWORD bytes in
0Ch DWORD bytes out
10h DWORD errors in
14h DWORD errors out
18h DWORD packets dropped
--------N-6019-------------------------------
INT 60 - FTP Packet Driver - EXTENDED FUNC - SET NETWORK ADDRESS
AH = 19h
ES:DI -> address
CX = length of address
Return: CF set on error
DH = error code (0Dh,0Eh) (see AX=01FFh)
CF clear if successful
CX = length
--------N-601A-------------------------------
INT 60 - FTP Packet Driver v1.10+ - EXTENDED FUNC - SEND RAW BYTES
AH = 1Ah
DS:SI -> buffer
CX = length of buffer
Return: CF set on error
DH = error code (see AX=01FFh)
CF clear if successful
SeeAlso: AH=1Ch
--------N-601B-------------------------------
INT 60 - FTP Packet Driver v1.10+ - EXTENDED FUNC - FLUSH RAW BYTES RECEIVED
AH = 1Bh
Return: CF set on error
DH = error code (see AX=01FFh)
CF clear if successful
SeeAlso: AH=1Ch
--------N-601C-------------------------------
INT 60 - FTP Packet Driver v1.10+ - EXTENDED FUNC - FETCH RAW BYTES RECEIVED
AH = 1Ch
DS:SI -> buffer
CX = length of buffer
DX = timeout in clock ticks
Return: CF set on error
DH = error code (see AX=01FFh)
CF clear if successful
CX = number of bytes transferred to buffer
SeeAlso: AH=1Ah,AH=1Bh
--------a-60AD-------------------------------
INT 60 - AccessDOS - API
AH = ADh
AL = function
E1h ???
Return: AX = ???
E2h get configuration
Return: BX:AX -> configuration data
Program: AccessDOS is a public domain TSR developed at The Trace Research and
Development Center which provides extensions for keyboard, mouse,
and sound access by the visually, hearing, or motor-control
impaired.
Note: INT 60 is the default vector; AccessDOS will use the first 0000h:0000h
vector in the range 60h through 66h.
--------*-61---------------------------------
INT 61 - reserved for user interrupt
--------b-61---------------------------------
INT 61 - Atari Portfolio - EXTENDED BIOS
provides subfunctions such as turning off the machine, accessing internal
variables, and mapping memory cards
SeeAlso: INT 60"Atari"
--------b-61---------------------------------
INT 61 - HP 95LX System Manager - LOAD DS
SeeAlso: INT 0F"HP 95LX",INT 60"HP 95LX"
--------r-61---------------------------------
INT 61 - JPI TopSPEED Modula-2 v1 - PROCEDURE EXIT TRAP
SeeAlso: INT 61"JPI"
--------d-61---------------------------------
INT 61 - Adaptec and OMTI controllers - DRIVE 0 DATA
Note: this vector stores the second four bytes of the parameter table for
hard disk 0
SeeAlso: INT 60"Adaptec",INT 62"Adaptec",INT 63"Adaptec"
--------I-61---------------------------------
INT 61 - Sangoma CCIP (CCPOP 3270 resident module) INTERFACE
BX:DX -> control block
SeeAlso: INT 67"Sangoma"
--------v-61---------------------------------
INT 61 - VIRUS - "SEMTEX"/"Screen Trasher" - INT 21h SUBSTITUTE
Note: the virus copies the original INT 21h vector into INT 61h
SeeAlso: INT 21h,INT 60"VIRUS",INT 6B"VIRUS"
--------N-61---------------------------------
INT 61 - FTP Software PC/TCP - TCP/IP TSR System Call interface
AH = system call number (see also entries below)
01h "pkt_alloc" (v2.05; this is "net_config" in v2.1+)
02h "pkt_free" (v2.05; this is "get_kernel_info" in v2.1+)
Return: CF clear if successful
CF set on error
AL = basic error (see below)
AH = suberror number
Notes: the installation check consists of testing for the signature "TCPTSR"
three bytes beyond the start of the interrupt handler
INT 61 is the default; PC/TCP v2.05 may be configured to use any
interrupt from 20h through E0h
BUG: the SLIP kernel for v2.05 bounds-checks the wrong register, so values
greater than 54h in AH may crash the system. Other kernels may have
this bug as well.
SeeAlso: INT 61/AH=00h"PC/TCP",INT 61/AH=2Ah,INT 61/AH=54h
Index: installation check;PC/TCP
Values for error code:
00h "NET_NOERR" successful
01h "NET_ERR_INUSE" protocol or socket already in use
02h "NET_DOS_ERR" MS-DOS error (returned as suberror code in AH)
03h "NET_ERR_NOMEM" out of memory
04h "NET_ERR_NOTNETCONN" not a network descriptor
05h "NET_ERR_ILLEGALOP" invalid operation on given kind of network descriptor
06h "NET_ERR_BADPKT" illegal or corrupted packet
07h "NET_ERR_NOHOST" no host bound to specified connection
08h "NET_ERR_CANTOPEN" unable to open file
09h "NET_ERR_NET_UNREACHABLE" network is unreachable
0Ah "NET_ERR_HOST_UNREACHABLE" host is unreachable (see subcodes below)
0Bh "NET_ERR_PROT_UNREACHABLE" protocol is unreachable
0Ch "NET_ERR_PORT_UNREACHABLE" port is unreachable
0Dh "NET_ERR_TIMEOUT" operation timed out
0Eh "NET_ERR_HOSTUNKNOWN" unable to resolve host name
0Fh "NET_ERR_NOSERVERS" no name servers configured
10h "NET_ERR_SERVER_ERR" bad reply from name server
Subcodes: 0= no error, 1 = Host unreachable
11h "NET_ERR_BADFORMAT" bad format for IP address or field in IP address struc
is zero
12h "NET_ERR_BADARG" invalid argument
13h "NET_ERR_EOF" foreign host closed its end of connection
14h "NET_ERR_RESET" connection has been reset
15h "NET_ERR_WOULDBLOCK" recv() call was done on a non-blocking connection
with no data available
16h "NET_ERR_UNBOUND" insufficient resources to do operation
17h "NET_ERR_NODESC" could not allocate network descriptor
18h "NET_ERR_BADSYSCALL" invalid/unsupported kernel call
19h "NET_ERR_CANTBROADCAST" unable to broadcast
1Ah "NET_ERR_NOTESTAB" operation illegal because connection not established
1Bh kernel busy, try again later
1Ch "NET_ERR_ICMPMESG" an ICMP message was received (not on streams)
(see subcodes below)
---v2.1+---
1Dh "NET_ERR_TERMINATING" internal kernel fatal error
1Eh "NET_ERR_TAG_LOCKED" not allowed to set this tag (net_config)
1Fh "NET_ERR_BAD_INTERFACE" non existent interface specified
20h "NET_ERR_BADCONFIG" kernel cannot run - bad configuration
21h "NET_ERR_EMM" expanded memory error
22h "NET_ERR_CANT_SHUTDOWN" cant unload kernel (multitasker running)
23h "NET_ERR_PARKED_IN" unable to unhook DOS interrupt
24h "NET_ERR_NOQIOS" ran out of resources; try again later
25h "NET_ERR_WOULD_TRUNCATE" datagram too large and "don't truncate" was set
Values for subcodes of error 0Ah "NET_ERR_HOST_UNREACHABLE":
00h no error
01h host unreachable
02h ARP failed
03h hardware failure
04h link failure
05h no route
06h gateway down
Values for subcodes of error 1Ch "NET_ERR_ICMPMESG":
07h unrecognised
08h can't fragment
09h srcr_fail
0Ah source quench
0Bh time exceeded
0Ch parameter problem
0Dh admin_prohib. see also code 0Ah
--------N-6100-------------------------------
INT 61 U - PC/TCP kernel v2.05+ - GET DEBUG INFORMATION
AH = 00h
DS:SI -> 216-byte buffer for network debugging information (see below)
Return: CF clear
AX = 0000h
buffer filled
Notes: this call is not documented by FTP, Inc. for any version
most of the information returned by this call is available via the
documented get_kernel_info or net_info commands.
SeeAlso: INT 61"PC/TCP",INT 61/AH=2Ah"PC/TCP"
Format of network debugging information:
Offset Size Description
00h DWORD number of interrupts
04h DWORD receive buffer low-water mark
08h DWORD transmit buffer low-water mark
0Ch DWORD number of packets received
10h DWORD number of packets transmitted
14h DWORD total receive errors
18h DWORD total transmit errors
1Ch 4 BYTEs ???
20h DWORD receive resets
24h DWORD transmit resets
28h DWORD number of "runts" received
2Ch DWORD number of alignment errors on received packets
30h DWORD number of CRC errors on received packets
34h DWORD number of parity errors on received packets
38h DWORD number of receive overflow errors
3Ch DWORD number of oversized packets received
40h DWORD number of packets lost due to lack of buffers
44h DWORD receive timeouts
48h 32 BYTEs ???
68h DWORD number of transmit collisions
6Ch DWORD number of transmit timeouts
70h DWORD number of transmit underflows
74h DWORD number of lost "crs" on transmit
78h DWORD number of times heartbeat failed on transmit
7Ch 24 BYTEs ???
94h WORD free packet buffers
96h WORD total packet buffers
98h WORD minimum number of packet buffers free since kernel started
9Ah 24 BYTEs ???
B2h DWORD pointer to TCP connection list???
B6h DWORD pointer to IP routing table???
BAh 30 BYTEs ???
--------V-610000-----------------------------
INT 61 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - ZOOM DISPLAY
AX = 0000h
BX = zoom factor (0-7)
Notes: zooms the display based on the given zoom factor
INT 61h is the default interrupt; the actual interrupt number can be
obtained by calling INT 16/AH=FFh
not all vendors include the Tseng TSR which supports these functions
SeeAlso: INT 16/AH=FFh"OPTIMA",INT 61/AX=0001h"OPTIMA",INT 61/AX=0002h"OPTIMA"
SeeAlso: INT 61/AX=0005h"OPTIMA"
--------N-610001SF0001-----------------------
INT 61 - Banyan VINES - "Sosock" - OPEN COMMUNICATIONS SOCKET
AX = 0001h subfn 0001h
DS:DX -> communications control block (function 0001h)
Return: AX = status (see below)
Note: BANYAN can use any interrupt from 60h through 66h. The Banyan
interrupt handler is identified by the string "BANV" in the four
bytes immediately preceding the interrupt handler
SeeAlso: AX=0001h/SF=0002h,AX=0001h/SF=0008h,INT 15/AX=DE2Eh
Values for status:
0000h successful
0001h service not installed
0002h invalid service ID
0098h resource already in use
009Eh address family does not exist
009Fh socket type does not exist
00A0h protocol does not exist
00A1h no more sockets available
00A2h no more buffer space available
Format of control block:
Offset Size Description
00h WORD 0001h
02h WORD pointer to argument block
04h WORD error return code
06h 4 BYTEs reserved
Format of argument block:
Offset Size Description
00h WORD pointer to 2-byte buffer for socket identifier
02h WORD address family
0003h Banyan
04h WORD socket type
in address family 0003h
0001h IPC socket
0002h SPP socket
06h WORD protocol number
FFFFh default
08h WORD pointer to 16-byte buffer for socket address
0Ah WORD local port number
0000h if service should assign transient port number
0001h to 01FFh well-known port number (assigned by Banyan)
Format of IPC port:
Offset Size Description
00h WORD address family (always 0003h for Banyan ports)
04h 4 BYTEs network number (server's serial number)
06h WORD subnet number (0001h = server, 8000h-FFFEh = PC)
08h WORD port ID (0001h-01FFh for "well-known" ports)
0Ah BYTE hop count
0Bh 5 BYTEs filler
--------N-610001SF0002-----------------------
INT 61 - Banyan VINES - "Sosend" - INITIATE OUTPUT EVENT
AX = 0001h subfn 0002h
DS:DX -> communications control block (function 0002h)
Return: AX = status (see below)
Note: BANYAN can use any interrupt from 60h through 66h. The Banyan
interrupt handler is identified by the string "BANV" in the four
bytes immediately preceding the interrupt handler
SeeAlso: AX=0001h/SF=0001h,AX=0001h/SF=0005h
Values for status:
0000h successful
0001h service not installed
0002h invalid service ID
0003h-000Ah reserved for BANV interface errors
0097h invalid socket identifier
009Bh destination node unreachable
009Ch message overflow
009Dh destination socket nonexistent
00A2h no more buffer space
00A3h timeout
00B1h resource disconnect
Format of control block:
Offset Size Description
00h WORD 0002h
02h WORD pointer to argument block (see below)
04h WORD error return code
0000h successful
0097h invalid socket ID
00A2h no more buffer space
00A3h timeout event
00A5h resource not available
00A6h internal communication failure
00B1h resource disconnect
06h 4 BYTEs reserved
Format of argument block:
Offset Size Description
00h WORD routine metric
02h WORD error return code
04h WORD socket identifier
06h WORD pointer to send buffer
08h WORD length of send buffer
0Ah WORD flags
bit 0: async request
bit 1: reliable message
bit 3: end of user message received
bit 4: vectored request (if set, send buffer contains buffer
descriptors)
bit 5: connection-specific receive
bit 6: change to connection-specific receive mode
0Ch 16 BYTEs socket address (see below)
1Ch WORD timeout value in multiples of 200ms
1Eh WORD connection identifier
20h WORD type of request
0001h send message
0002h establish a virtual connection
0003h terminate a virtual connection
Format of buffer descriptor:
Offset Size Description
00h WORD data segment
02h WORD buffer pointer
04h WORD buffer length
06h WORD character count
Format of socket address for unreliable datagrams:
Offset Size Description
00h WORD 0003h address family
02h DWORD FFFFFFFFh network number
06h WORD FFFFh subnet number
08h WORD local port number
0Ah BYTE 00h-0Fh hop count
0Bh 5 BYTEs 0000h filler
--------N-610001SF0003-----------------------
INT 61 - Banyan VINES - "Sorec" - RECEIVE INPUT EVENT NOTIFICATION
AX = 0001h subfn 0003h
DS:DX -> communications control block (function 0003h)
Return: AX = status (00-0Ah,97h,A2h,A3h) (see AX=0001h/SF=0002h)
Note: BANYAN can use any interrupt from 60h through 66h. The Banyan
interrupt handler is identified by the string "BANV" in the four
bytes immediately preceding the interrupt handler
SeeAlso: AX=0001h/SF=0002h
Format of control block:
Offset Size Description
00h WORD 0003h
02h WORD pointer to argument block (see below)
04h WORD error return code
0000h successful
0097h invalid socket ID
00A2h no more buffer space
00A3h timeout event
00A5h resource not available
00A6h internal communication failure
00B1h resource disconnect
06h 4 BYTEs reserved
Format of argument block:
Offset Size Description
00h WORD character count
02h WORD error return code
04h WORD socket identifier
06h WORD pointer to receive buffer
08h WORD length of receive buffer
0Ah WORD flags
bit 0: async request
bit 2: flush receive buffer on overflow
bit 3: end of user message received
bit 4: vectored request (if set, receive buffer contains buffer
descriptors)
bit 5: connection-specific receive
bit 6: change to connection-specific receive mode
0Ch 16 BYTEs socket address
1Ch WORD timeout value in multiples of 200ms
1Eh WORD connection identifier
20h WORD type of response
0001h message received
0002h virtual connection established
0003h virtual connection terminated
Format of buffer descriptor:
Offset Size Description
00h WORD data segment
02h WORD buffer pointer
04h WORD buffer length
06h WORD character count
--------N-610001SF0004-----------------------
INT 61 - Banyan VINES - "Soclose" - CLOSE A SOCKET
AX = 0001h subfn 0004h
DS:DX -> communications control block (function 0004h)
Return: AX = status (00h-0Ah,97h) (see AX=0001h/SF=0002h)
Note: BANYAN can use any interrupt from 60h through 66h. The Banyan
interrupt handler is identified by the string "BANV" in the four
bytes immediately preceding the interrupt handler
SeeAlso: AX=0001h/SF=0001h,INT 15/AX=DE2Eh
Format of control block:
Offset Size Description
00h WORD 0004h
02h WORD pointer to argument block (see below)
04h WORD error return code
06h 4 BYTEs reserved
Format of argument block:
Offset Size Description
00h WORD socket identifier
--------N-610001SF0005-----------------------
INT 61 - Banyan VINES - "Sowait" - WAIT FOR ASYNCHRONOUS EVENT COMPLETION
AX = 0001h subfn 0005h
DS:DX -> communications control block (function 0005h)
Return: AX = status (see below)
Notes: BANYAN can use any interrupt from 60h through 66h. The Banyan
interrupt handler is identified by the string "BANV" in the four
bytes immediately preceding the interrupt handler
returns results for all asynchronous operations invoked from the
data segment used for this call
SeeAlso: AX=0001h/SF=0002h,AX=0001h/SF=0009h
Values for status:
0000h successful
0001h service not installed
0002h invalid service ID
0003h-000Ah reserved for BANV interface errors
00A2h no more buffer space available
00A3h timeout event
Format of control block:
Offset Size Description
00h WORD 0005h
02h WORD pointer to argument block (see below)
04h WORD error return code
06h 4 BYTEs reserved
Format of argument block:
Offset Size Description
00h WORD pointer to WORD event pointer
02h WORD timeout in multiples of 200ms, FFFFh = infinite
--------N-610001SF0008-----------------------
INT 61 - Banyan VINES - "Sosession" - REGISTER APPLICATION WITH COMM SERVICE
AX = 0001h subfn 0008h
DS:DX -> communications control block (function 0008h)
Return: AX = status
0000h successful
00A2h no more buffer space available
Note: BANYAN can use any interrupt from 60h through 66h (default 61h). The
Banyan interrupt handler is identified by the string "BANV" in the
four bytes immediately preceding the interrupt handler
SeeAlso: AX=0001h/SF=0001h,AX=0001h/SF=0009h
Format of control block:
Offset Size Description
00h WORD 0008h
02h WORD process type
0001h transient process
0002h resident process
04h WORD error return code
06h 4 BYTEs reserved
--------N-610001SF000B-----------------------
INT 61 - Banyan VINES - "Soint" - SET USER COMPLETION FUNCTION
AX = 0001h subfn 000Bh
DS:DX -> communications control block (function 000Bh)
Return: AX = status (00h-0Ah,A2h) (see AX=0001h/SF=0005h)
Notes: BANYAN can use any interrupt from 60h through 66h. The Banyan
interrupt handler is identified by the string "BANV" in the four
bytes immediately preceding the interrupt handler
FAR user function is invoked with SS,DS, and ES set to segment of
control block, and with the stack containing
DWORD return address
WORD argument pointer (sosend or sorec argument block)
WORD error return code
0000h argument pointer is valid
00A3h timeout
SeeAlso: AX=0001h/SF=0005h,AX=0001h/SF=0008h
Format of control block:
Offset Size Description
00h WORD 000Bh
02h WORD pointer to argument block (see below)
04h WORD error return code
06h 2 BYTEs reserved
08h WORD user CS register
Format of argument block:
Offset Size Description
00h WORD pointer to user interrupt function
02h WORD pointer to user stack
04h WORD initial timeout value in multiples of 200ms, FFFFh = infinite
--------V-610001-----------------------------
INT 61 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - CENTER ZOOM WINDOW
AX = 0001h
BX = X coordinate to center
CX = Y coordinate to center
Notes: Positions the zoom window such that the specified window-relative
coordinates appear as close as possible to the center of the
display. Useful for scrolling and panning.
INT 61h is the default interrupt; the actual interrupt number can be
obtained by calling INT 16/AH=FFh
not all vendors include the Tseng TSR which supports these functions
SeeAlso: INT 16/AH=FFh"OPTIMA",INT 61/AX=0000h"OPTIMA",INT 61/AX=0002h"OPTIMA"
SeeAlso: INT 61/AX=0005h"OPTIMA"
--------I-610002-----------------------------
INT 61 - Banyan VINES - 3270 INTERFACE
AX = 0002h
BH = function
00h "pi2reset" reset 3270/SNA or 3270/BSC driver
02h "pi2bsc" (3270/BSC only)
03h "pi2get" get information stored in 3270 resident driver
04h "pi2put" store information in 3270 resident driver
05h "pi2gcur" get current screen position
07h "pi2sdat" send data keystroke
08h "pi2scom" send command keystroke
0Ah "pi2field" get field info for arbitrary screen positions
0Fh "pi2stat" get logical unit/device status
12h "pi2nlus" determine logical unit/device assignment
13h "pi2gate" specifies comm port address to gateway service
14h "pi2attach" attach a logical unit/device
15h "pi2sdev" save logical unit/device info in resident driver
(not supported in >3.0)
16h "pi2gdev" get device information (not supported in >3.0)
17h "pi2luinfo" get info about specific logical unit/device
18h "pi2gerr" get finer error detail
19h "pi2dhold" (3270/SNA only) holds a 3270 device
1Ah "pi2shut" release memory-resident module
1Ch "pi2sprof" save profile info in res driver (not supp in >3.0)
1Dh "pi2gprof" get prevsly stored profile info (not supp in >3.0)
DS:CX -> argument block (except BH=00h,1Ah)
Return: AX = status (see below)
Notes: Either 3270/SNA or 3270/BSC interface may use AX=0002h, depending on
which is loaded first. The other interface will use AX=000Ah
Status codes greater than 63h indicate an inconsistency in the 3270/SNA
or 3270/BSC resident driver, which must be reloaded by the user
Values for status:
0000h successful
000Bh invalid parameter or data does not fit data area
000Ch another code path currently active in resident driver
000Dh operation currently not allowed
0032h encountered connection disconnect error
0033h encountered "sosend" completion error
0034h encountered "sosend" communication error
0035h attach request refused. extended error info via "pi2gerr":
01h resource unavailable
02h invalid type
03h version mismatch
04h invalid logical unit number
05h error during ARL processing
06h no access for user
0071h encountered "sosock" error
0072h encountered unrecognizable error
0073h encountered "sowait" error (extended info via "pi2gerr")
0074h encountered invalid type-of-request on "sowait"
0075h encountered "sorec" error (extended info via "pi2gerr")
0076h encountered "sorec" completion error (ext info via "pi2gerr")
0077h encountered connection request
0078h encountered unrecognizable data
0079h encountered unknown connection ID (ext info via "pi2gerr")
Format of argument block for BH=03h,04h:
Offset Size Description
00h WORD size of data area (max 256)
02h N BYTEs data area
Format of argument block for BH=05h:
Offset Size Description
00h WORD logical unit/device number
02h WORD pointer to WORD buffer for cursor index
04h WORD pointer to BYTE buffer for current field attribute
Format of argument block for BH=07h:
Offset Size Description
00h WORD logical unit/device number
02h WORD ASCII data byte
04h WORD pointer to WORD count of characters which will need updating
Format of argument block for BH=08h:
Offset Size Description
00h WORD logical unit/device number
02h WORD keystroke
0000h Enter
0001h Clear
0002h PA1
0003h PA2
0004h PA3
0005h PF1
...
001Ch PF24
001Dh CSELECT (cursor select)
001Eh Insert
001Fh Delete
0020h EOField
0021h EINPUT (erase input)
0022h Reset
0023h Attention
0024h SysReq
0025h Duplicate
0026h Fieldmark
0027h Home
0028h NextLine
0029h Tab
002Ah BackTab
002Bh cursor up
002Ch cursor down
002Dh cursor right
002Eh cursor left
002Fh double cursor right
0030h double cursor left
0031h PRINT
0032h CANCEL
0033h Backspace
Format of argument block for BH=0Ah:
Offset Size Description
00h WORD logical unit/device number
02h WORD screen index
04h WORD pointer to WORD buffer for field length
06h WORD pointer to WORD buffer for offset in screen of field start
Format of argument block for BH=0Fh:
Offset Size Description
00h WORD logical unit/device number
02h WORD clear mask (clear these bits of status after returning status)
04h WORD pointer to WORD buffer for device status (see below)
Bitfields for device status:
bit 10 status modified
bit 9 buffer modified
bit 8 set cursor
bit 5 sound alarm
bits 1-0 size of print line for printer logical units
00 unformatted line
01 40-character line
10 64-character line
11 80-character line
Format of argument block for BH=12h:
Offset Size Description
00h WORD pointer to WORD buffer for number of logical units or devices
02h WORD pointer to WORD buffer for version number
04h WORD pointer to 64-byte buffer for logical unit/device list
Format of argument block for BH=13h:
Offset Size Description
00h 16 BYTEs communications port address (see AX=0001h#"Sosock")
Format of argument block for BH=14h:
Offset Size Description
00h WORD logical unit/device number
0000h attach any free device of the specified type
02h WORD logical unit/device type
(3270/SNA) 01h, 02h, or 03h
(3270/BSC) 02h display
(3270/BSC) 03h printer
04h WORD pointer to WORD buffer for attached logical unit/device number
Format of argument block for BH=16h:
Offset Size Description
00h WORD pointer to 18-byte buffer for device block (see below)
first WORD must be set to desired logical unit/device number
Format of argument block for BH=17h:
Offset Size Description
00h WORD logical unit/device number
02h WORD pointer to information block in caller's DS (see below)
Format of argument block for BH=18h:
Offset Size Description
00h WORD pointer to WORD buffer for major error code
02h WORD pointer to WORD buffer for minor error code
Format of argument block for BH=19h:
Offset Size Description
00h WORD logical unit/device number
Format of argument block for BH=1Ch,1Dh:
Offset Size Description
00h WORD pointer to profile block in caller's DS (see below)
Format of device block, argument block for BH=15h:
Offset Size Description
00h WORD logical unit/device number
02h WORD logical unit/device type
04h WORD display model number
06h WORD numeric checking
08h WORD status line
0Ah BYTE unprotected normal field attribute
0Bh BYTE unprotected intensified field attribute
0Ch BYTE protected normal field attribute
0Dh BYTE protected intensified field attribute
0Eh WORD reserved
10h WORD printer port number
Format of information block:
Offset Size Description
00h WORD device model number
02h DWORD screen buffer pointer
06h DWORD status line pointer (see below)
0Ah DWORD reserved
Format of status line:
Offset Size Description
00h BYTE comm line status
00h inactive
01h active
01h BYTE activation level
01h physical unit activated
02h logical unit also activated
03h session is bound
02h BYTE data traffic state
00h inactive
01h active
03h BYTE screen ownership
00h SLU->PLU sessoin owns screen
01h SLU->SSCP session owns screen
04h BYTE keyboard status (see below)
05h BYTE insert mode
01h if in insert mode
06h BYTE numeric
01h if current screen buffer is numeric only
07h BYTE printer status
00h printer not assigned
01h printer is inactive
02h printer error
03h currently printing
04h printer is busy
05h printer is very busy
08h BYTE printer assignment
09h BYTE maximum size of network name
0Ah N BYTEs ASCIZ network name
BYTE maximum size of message window
M BYTEs null-terminated message window
BYTE code set
00h EBCDIC
01h ASCII
M BYTEs extended attributes
01h extended attributes are in effect (stored at screen+1920)
each extended attribute specifies
bits 0,1: 00=normal, 01=blink, 10=reverse, 11=underscor
bits 2-4: 000=default,001=blue,010=red,011=pink,
100=green,101=turquoise,110=yellow,111=white
BYTE extended color
01h other than base color is in effect
Values for keyboard status:
00h UNLOCK - ready to accept data
01h TIME - aid was struck
02h SYSTEM - received response no restore
03h FUNCTION - unavailable keyboard function
04h INPUT - not currently used
05h ENDFIELD - field filled in insert mode
06h PROTECTED - attempt to enter in protected field
07h NUMERIC - attempt to enter in numeric field
08h PROGRAM - error in outbound data stream
Format of profile block:
Offset Size Description
00h 64 BYTEs gateway service name
40h 16 BYTEs gateway comm port address
50h WORD primary logical unit number
52h WORD secondary logical unit type
54h WORD secondary logical unit number
56h WORD printer assignment
58h 50 BYTEs keyboard definitions filename
--------V-610002-----------------------------
INT 61 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - END ZOOM
AX = 0002h
Notes: switches off zoom and returns window to its original state
INT 61h is the default interrupt; the actual interrupt number can be
obtained by calling INT 16/AH=FFh
not all vendors include the Tseng TSR which supports these functions
SeeAlso: INT 16/AH=FFh"OPTIMA",INT 61/AX=0000h"OPTIMA"
--------N-610003SF00-------------------------
INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - INIT USER BUFFER PTR INFO
AX = 0003h subfn 00h
DS:BX -> argument block (see below)
Return: AX = status (see below)
SeeAlso: AX=0003h/SF=06h,AX=0003h/SF=08h,AX=0003h/SF=0Dh
Values for status:
0000h successful
000Bh invalid session ID
000Ch session not active
000Dh invalid request type
000Eh invalid parameters
000Fh out of heap space
0010h timeout on send
0011h Banyan communications error
0012h session not waiting for host
0013h session is active
0014h duplicate suspend session request
0015h no session suspended
0016h ring data buffer full
0017h printer error encountered
0018h Banyan communications error
0019h unable to make connection
001Ah no ring buffer specified at startup
001Bh service is down
001Ch invalid service name
001Dh service is closed
001Eh invalid connection name
001Fh max session limit reached for service
0020h access rights list for connection/dialout does not include this user
0021h service not responding
0022h missing telephone number
Format of argument block:
Offset Size Description
00h BYTE session ID (00h)
01h BYTE 00h (func "initialize user buffer pointer information area")
02h WORD -> user buffer ptr info area in caller's current DS (see below)
Format of user buffer ptr info area:
Offset Size Description
00h WORD flags
0000h don't read interface's data buffer
0001h read data buffer
02h DWORD pointer to ring buffer
06h WORD length of ring buffer
08h WORD ring buffer offset to last byte read by caller
0Ah DWORD pointer to WORD containing offset of last byte
in ring buffer filled
0Eh DWORD pointer to screen buffer
12h DWORD pointer to field containing cursor position
16h DWORD pointer to terminal status area (see below)
Format of terminal status area:
Offset Size Description
00h BYTE status of session: 4Eh=oNline, 46h=oFfline, 57h=Waiting
01h BYTE terminal type (00h=VT100, 01h=TTY, 02h=VT52, 03h=IBM3101)
02h BYTE current keypad mode (VT100,VT52 only)
4Eh ("N") numeric mode
41h ("A") application mode
03h 4 BYTEs current state of LEDs (VT100 only)
00h off
01h on
07h WORD line error count
09h WORD primary error code (see below)
0Bh WORD secondary error code
Values for primary error code:
0000h no error
0001h unable to make connection
0002h communications error, restart session
0003h async terminal emulation service unavailable
0004h lost carrier
0005h all matching lines busy
0006h no lines defined for connection name
0007h no dial lines available on server
0008h no matching dial lines available
0009h out of heap space
000Ah service error encountered
000Bh timed out waiting to connect
000Ch communications error
000Dh communications error
000Eh host wants file transferred to/from PC
000Fh host software changed session parameter
0010h host software changed tap settings
0011h host software changed LED indicator
0012h host software changed display background (secondary error code 00h for
white on black, 01h for black on white)
0013h host software changed display option (secondary error code 00h for off,
01h for on)
0014h communications error
0015h communications error
0016h unable to make connection
0017h unable to make connection
--------N-610003SF01-------------------------
INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - SEND TO HOST
AX = 0003h subfn 01h
DS:BX -> argument block (see below)
Return: AX = status (see AX=0003h/SF=00h)
SeeAlso: AX=0003h/SF=00h,AX=0003h/SF=02h,AX=0003h/SF=14h
Format of argument block:
Offset Size Description
00h BYTE session ID (00h)
01h BYTE 01h (function "send to host")
02h BYTE type
00h ASCII byte
01h ASCII string
02h terminal function code
03h up arrow
04h down arrow
05h left arrow
06h right arrow
07h break
03h N BYTEs type-specific info (see below)
Format of type-specific info:
Offset Size Description
---ASCII byte---
03h BYTE byte to send to host
---ASCII string---
03h WORD length of string
05h WORD pointer to string
---terminal function code (VT52/VT100)---
03h BYTE function code
00h keypad 0
01h keypad 1
...
09h keypad 9
0Ah keypad -
0Bh keypad ,
0Ch keypad .
0Dh keypad ENTER
0Eh PF1
0Fh PF2
10h PF3
11h PF4
---terminal function code (IBM3101)---
03h BYTE function code
00h PF1
...
07h PF8
08h Home
--------N-610003SF02-------------------------
INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - "CONTROL MONITOR"
AX = 0003h subfn 02h
DS:BX -> argument block (see below)
Return: AX = status (see AX=0003h/SF=00h)
SeeAlso: AX=0003h/SF=03h,AX=0003h/SF=05h
Format of argument block:
Offset Size Description
00h BYTE session ID (00h)
01h BYTE 02h (function "control monitor")
02h BYTE display flag
00h don't display data received from host
01h display data
--------N-610003SF03-------------------------
INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - "FLOW CONTROL DATA"
AX = 0003h subfn 03h
DS:BX -> argument block (see below)
Return: AX = status (see AX=0003h/SF=00h)
Desc: this function permits the caller to freeze/unfreeze the display and
the ring buffer
SeeAlso: AX=0003h/SF=02h,AX=0003h/SF=06h
Format of argument block:
Offset Size Description
00h BYTE session ID (00h)
01h BYTE 03h (function "flow control data")
02h BYTE flow control flag
00h allow characters to be put into display or ring buffer
01h don't place any more characters into display or ring buffer
--------N-610003SF04-------------------------
INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - END ACTIVE SESSION
AX = 0003h subfn 04h
DS:BX -> argument block (see below)
Return: AX = status (see AX=0003h/SF=00h)
SeeAlso: AX=0003h/SF=0Ah,AX=0003h/SF=0Dh,AX=0003h/SF=0Fh
Format of argument block:
Offset Size Description
00h BYTE session ID (00h)
01h BYTE 04h (function "end active session")
--------N-610003SF05-------------------------
INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - SET SESSION PARAMETER
AX = 0003h subfn 05h
DS:BX -> argument block (see below)
Return: AX = status (see AX=0003h/SF=00h)
SeeAlso: AX=0003h/SF=00h,AX=0003h/SF=06h,AX=0003h/SF=08h
Format of argument block:
Offset Size Description
00h BYTE session ID (00h)
01h BYTE 05h (function "set session parameter")
02h BYTE parameter number (see below)
03h BYTE new parameter value
Values for parameter number:
00h line speed (00h=any, 01h=50, 02h=110, 03h=134.5, 04h=150,
05h=300,06h=600,07h=1200,08h=2400,09h=4800, 0Ah=9600)
01h parity (00h=none, 01h=odd, 02h=even)
02h duplex (00h=full, 01h=half)
03h character size (00h=7 bits, 01h=8 bits)
04h stop bits (00h=1, 01h=2)
05h XON/XOFF flow control (00h=no, 01h=yes)
07h intercharacter delay in tenths of a second
08h interline delay in tenths of a second
09h auto linefeed (00h=no, 01h=yes)
0Ah filter control characters (00h=no, 01h=yes)
0Bh terminal type (00h=VT100,01h=glassTTY,02h=VT52,03h=IBM3101)
0Ch auto wrap (00h=no, 01h=yes)
0Dh cursor shape (00h=underscore, 01h=block)
0Eh character set (00h=UK, 01h=US ASCII)
0Fh printer port (00h=LPT1, 01h=LPT2, 02h=LPT3)
--------N-610003SF06-------------------------
INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - GET SESSION PARAMETER
AX = 0003h subfn 06h
DS:BX -> argument block (see below)
Return: AX = status (see AX=0003h/SF=00h)
SeeAlso: AX=0003h/SF=00h,AX=0003h/SF=05h,AX=0003h/SF=07h
Format of argument block:
Offset Size Description
00h BYTE session ID (00h)
01h BYTE 06h (function "get session parameter")
02h BYTE parameter number (see AX=0003h/SF=05h)
03h BYTE (return) current parameter value
--------N-610003SF07-------------------------
INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - SET TAB SETTINGS
AX = 0003h subfn 07h
DS:BX -> argument block (see below)
Return: AX = status (see AX=0003h/SF=00h)
SeeAlso: AX=0003h/SF=05h,AX=0003h/SF=08h
Format of argument block:
Offset Size Description
00h BYTE session ID (00h)
01h BYTE 07h (function "set tab settings")
02h WORD pointer to 80-byte buffer in caller's current DS
each byte = 00h if no tab, 01h if tab at that position
--------N-610003SF08-------------------------
INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - GET TAB SETTINGS
AX = 0003h subfn 08h
DS:BX -> argument block (see below)
Return: AX = status (see AX=0003h/SF=00h)
SeeAlso: AX=0003h/SF=06h,AX=0003h/SF=07h
Format of argument block:
Offset Size Description
00h BYTE session ID (00h)
01h BYTE 08h (function "get tab settings")
02h WORD pointer to 80-byte buffer in caller's current DS
each byte set to 00h if no tab, 01h if tab at that position
--------N-610003SF09-------------------------
INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - REFRESH EMULATION SCREEN
AX = 0003h subfn 09h
DS:BX -> argument block (see below)
Return: AX = status (see AX=0003h/SF=00h)
SeeAlso: AX=0003h/SF=00h,AX=0003h/SF=0Bh
Format of argument block:
Offset Size Description
00h BYTE session ID (00h)
01h BYTE 09h (function "refresh emulation screen")
--------N-610003SF0A-------------------------
INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - SUSPEND SESSION TEMPORARILY
AX = 0003h subfn 0Ah
DS:BX -> argument block (see below)
Return: AX = status (see AX=0003h/SF=00h)
SeeAlso: AX=0003h/SF=04h,AX=0003h/SF=09h,AX=0003h/SF=0Bh,AX=0003h/SF=0Dh
Format of argument block:
Offset Size Description
00h BYTE session ID (00h)
01h BYTE 0Ah (function "suspend session temporarily")
02h WORD size of session information to be saved
04h WORD pointer to buffer in caller's DS
--------N-610003SF0B-------------------------
INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - RESUME SUSPENDED SESSION
AX = 0003h subfn 0Bh
DS:BX -> argument block (see below)
Return: AX = status (see AX=0003h/SF=00h)
SeeAlso: AX=0003h/SF=09h,AX=0003h/SF=0Ah
Format of argument block:
Offset Size Description
00h BYTE session ID (00h)
01h BYTE 0Bh (function "restore previously suspended session")
02h WORD size of buffer into which session info is restored
04h WORD pointer to buffer in caller's DS
--------N-610003SF0C-------------------------
INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - SET SCROLL LOCK CHECKING
AX = 0003h subfn 0Ch
DS:BX -> argument block (see below)
Return: AX = status (see AX=0003h/SF=00h)
SeeAlso: AX=0003h/SF=00h
Format of argument block:
Offset Size Description
00h BYTE session ID (00h)
01h BYTE 0Ch (function "set state of scroll lock checking")
02h BYTE check_scroll_lock flag
00h off
01h on (display of host data stopped while ScrollLock on)
--------N-610003SF0D-------------------------
INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - EXIT EMULATION
AX = 0003h subfn 0Dh
DS:BX -> argument block (see below)
Return: AX = status (see AX=0003h/SF=00h)
SeeAlso: AX=0003h/SF=04h,AX=0003h/SF=0Ah
Format of argument block:
Offset Size Description
00h BYTE session ID (00h)
01h BYTE 0Dh (function "exit emulation")
--------N-610003SF0E-------------------------
INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - INTERRUPT ON CHAR FROM HOST
AX = 0003h subfn 0Eh
DS:BX -> argument block (see below)
Return: AX = status (see AX=0003h/SF=00h)
SeeAlso: AX=0003h/SF=00h,AX=0003h/SF=14h
Format of argument block:
Offset Size Description
00h BYTE session ID (00h)
01h BYTE 0Eh (function "interrupt on character from host")
02h DWORD pointer to routine to be called (0000h:0000h = don't call)
06h DWORD stack pointer to use when call is made
--------N-610003SF0F-------------------------
INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - START A SESSION
AX = 0003h subfn 0Fh
DS:BX -> argument block (see below)
Return: AX = status (see AX=0003h/SF=00h)
SeeAlso: AX=0003h/SF=04h,AX=0003h/SF=0Bh
Format of argument block:
Offset Size Description
00h BYTE session ID (00h)
01h BYTE 0Fh (function "start a session")
02h WORD pointer to information area in caller's current DS (see below)
Format of information area:
Offset Size Description
00h WORD length of service name
02h WORD pointer to service name in caller's DS
04h BYTE type of connection (00h=connection name, 01h=dialout)
05h WORD length of connection name/telephone number
07h WORD pointer to connection name/telephone number
--------N-610003SF10-------------------------
INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - START/STOP PRINTING
AX = 0003h subfn 10h
DS:BX -> argument block (see below)
Return: AX = status (see AX=0003h/SF=00h)
SeeAlso: AX=0003h/SF=06h,AX=0003h/SF=13h
Format of argument block:
Offset Size Description
00h BYTE session ID (00h)
01h BYTE 10h (function "start/stop printing of data received from host)
02h WORD print capture flag (00h=off, 01h=on)
--------N-610003SF11-------------------------
INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - GET FILE TRANSFER PARAMETERS
AX = 0003h subfn 11h
DS:BX -> argument block (see below)
Return: AX = status (see AX=0003h/SF=00h)
SeeAlso: AX=0003h/SF=00h,AX=0003h/SF=12h
Format of argument block:
Offset Size Description
00h BYTE session ID (00h)
01h BYTE 11h (function "get file transfer parameters")
02h WORD pointer to info area in caller's current DS (see below)
Format of info area:
Offset Size Description
00h BYTE protocol flag (00h none, 01h Kermit)
01h BYTE direction flag (00h send, 01h receive)
02h BYTE length of null-terminated PC filename
03h DWORD pointer to null-terminated PC filename
07h BYTE length of null-terminated host filename
08h DWORD pointer to null-terminated host filename
--------N-610003SF12-------------------------
INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - GET CONNECTION INFORMATION
AX = 0003h subfn 12h
DS:BX -> argument block (see below)
Return: AX = status (see AX=0003h/SF=00h)
SeeAlso: AX=0003h/SF=11h,AX=0003h/SF=15h
Format of argument block:
Offset Size Description
00h BYTE session ID (00h)
01h BYTE 12h (function "get connection information")
02h WORD offset of buffer for connection information (see below)
Format of connection information:
Offset Size Description
00h WORD length of service name (returned)
02h WORD pointer to 64-byte buffer for service name
04h BYTE type of connection
00h connection name
01h dialout
05h WORD length of connection name/telephone number
07h WORD pointer to 64-byte buffer for name/telno
09h BYTE server line number being used (returned)
--------N-610003SF13-------------------------
INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - START/STOP TRACING TRAFFIC
AX = 0003h subfn 13h
DS:BX -> argument block (see below)
Return: AX = status (see AX=0003h/SF=00h)
SeeAlso: AX=0003h/SF=00h,AX=0003h/SF=0Eh
Format of argument block:
Offset Size Description
00h BYTE session ID (00h)
01h BYTE 13h (function "start/stop tracing data traffic in session")
02h BYTE trace flag (00h=off, 01h=on)
--------N-610003SF14-------------------------
INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - INTERRUPT ON HOST MESSAGE
AX = 0003h subfn 14h
DS:BX -> argument block (see below)
Return: AX = status (see AX=0003h/SF=00h)
SeeAlso: AX=0003h/SF=0Eh
Format of argument block:
Offset Size Description
00h BYTE session ID (00h)
01h BYTE 14h (function "interrupt on message from host")
02h DWORD pointer to routine to be called (0000h:0000h = don't call)
06h DWORD stack pointer to use when call is made
--------N-610003SF15-------------------------
INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - RESET ERROR
AX = 0003h subfn 15h
DS:BX -> argument block (see below)
Return: AX = status (see AX=0003h/SF=00h)
SeeAlso: AX=0003h/SF=00h,AX=0003h/SF=12h
Format of argument block:
Offset Size Description
00h BYTE session ID (00h)
01h BYTE 15h (function "reset error")
--------V-610003-----------------------------
INT 61 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - REPORT ZOOM FACTOR
AX = 0003h
Return: AX = zoom factor
Notes: returns the current zoom factor
INT 61h is the default interrupt; the actual interrupt number can be
obtained by calling INT 16/AH=FFh
not all vendors include the Tseng TSR which supports these functions
SeeAlso: INT 16/AH=FFh"OPTIMA",INT 61/AX=0000h"OPTIMA",INT 61/AX=0005h"OPTIMA"
--------N-610004-----------------------------
INT 61 - Banyan VINES - GET SERVER SERIAL NUMBER
AX = 0004h
DS:DX -> request block (function 0008h)
Return: AX = status
0000h server ID returned in request block
000Fh invalid drive
0015h drive not ready
Format of request block:
Offset Size Description
00h WORD 0008h
02h WORD drive number (0=default, 1=A, ...)
04h 6 BYTEs buffer for server ID
--------V-610004-----------------------------
INT 61 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - ENTER SPECIFY MODE
AX = 0004h
Notes: Specify Mode is enabled by hot key (seeAlso below), and allows
panning and zooming via the numeric keypad.
INT 61 is the default interrupt; the actual interrupt number can be
obtained by calling INT 16/AH=FFh
not all vendors include the Tseng TSR which supports these functions
SeeAlso: INT 16/AH=FFh"OPTIMA",INT 61/AX=0000h"OPTIMA",INT 61/AX=0007h"OPTIMA"
--------N-610005-----------------------------
INT 61 - Banyan VINES - PRINTER CONTROL
AX = 0005h
DS:DX -> request block
Return: AX = status
0000h successful
0001h network software not installed or incompatible
SeeAlso: INT 2F/AX=D702h
Format of request block:
Offset Size Description
00h WORD function
0201h "endspool" all data for a print job has been sent
0205h "getactive" get currently active printer port
02h WORD number of active port (1-3)
04h WORD ??? (0 for func 0201h, 3 for func 0205h)
06h WORD 0000h
--------V-610005-----------------------------
INT 61 - OPTIMA 1024 VGA-Sync - QUERY ZOOM WINDOW
AX = 0005h
BX:CX -> buffer for window parameters (see below)
Notes: INT 61 is the default interrupt; the actual interrupt number can be
obtained by calling INT 16/AH=FFh
not all vendors include the Tseng TSR which supports these functions
SeeAlso: INT 16/AH=FFh"OPTIMA",INT 61/AX=0000h"OPTIMA",INT 61/AX=0003h"OPTIMA"
SeeAlso: INT 61/AX=0006h"OPTIMA"
Format of window parameters:
Offset Size Description
00h WORD X start of zoom window
02h WORD Y start of zoom window
04h WORD X end of zoom window
06h WORD Y end of zoom window
08h WORD current zoom factor
0Ah WORD zoom offset start X
0Ch WORD zoom offset start Y
--------V-610006-----------------------------
INT 61 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - SET ZOOM WINDOW
AX = 0006h
BX:CX -> zoom window description (see below)
Notes: width of zoom window must be a multiple of the pixel replication
factor
INT 61 is the default interrupt; the actual interrupt number can be
obtained by calling INT 16/AH=FFh
not all vendors include the Tseng TSR which supports these functions
SeeAlso: INT 16/AH=FFh"OPTIMA",INT 61/AX=0000h"OPTIMA",INT 61/AX=0001h"OPTIMA"
SeeAlso: INT 61/AX=0005h"OPTIMA",INT 61/AX=0008h"OPTIMA"
Format of zoom window description:
Offset Size Description
00h WORD X start of zoom window
02h WORD Y start of zoom window
04h WORD X end of zoom window
06h WORD Y end of zoom window
--------V-610007-----------------------------
INT 61 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - QUERY APPLICATION KEY
AX = 0007h
Return: AX = current state (0000h/0001h)
Desc: returns the current toggle state of the application (END) key in
specify mode. E.g. in the OPTIMA AutoCAD driver, 0 means AutoCAD
calls INT 61/AX=0001h every time the crosshair cursor moves.
Notes: In specify mode, the END key has been reserved for applications.
INT 61 is the default interrupt; the actual interrupt number can be
obtained by calling INT 16/AH=FFh
not all vendors include the Tseng TSR which supports these functions
SeeAlso: INT 16/AH=FFh"OPTIMA",INT 61/AX=0000h"OPTIMA",INT 61/AX=0001h"OPTIMA"
SeeAlso: INT 61/AX=0004h"OPTIMA",INT 7A"AutoCAD"
--------N-610007BX0002-----------------------
INT 61 - Banyan VINES - GET PORTS FOR A SERVICE
AX = 0007h
BX = 0002h
DS:DX -> StreetTalk service name
DS:DI -> port record block (see below)
Return: AX = status (see below)
SeeAlso: AX=0007h/BX=0004h
Values for status:
0000h successful
0001h PC network software not installed or incompatible
03E9h incorrect name syntax
03EAh organization name too long
03EBh group name too long
03ECh item name too long
03EDh StreetTalk name too long
03F3h organization not found
03F4h group not found
03F5h StreetTalk name not found
03F8h not a StreetTalk name
0409h modify access denied
040Dh appropriate StreetTalk name unavailable
Format of port record block:
Offset Size Description
00h WORD number of 17-byte elements
02h 17 BYTEs element (byte 00h = input port type, bytes 01h-10h = port)
(see AX=0001h#"Sosock" for port format)
--------N-610007BX0004-----------------------
INT 61 - Banyan VINES - SET PORTS FOR A SERVICE
AX = 0007h
BX = 0004h
DS:DX -> StreetTalk name of service
DS:DI -> port record block (see below)
Return: AX = status (see AX=0007h/BX=0002h)
SeeAlso: AX=0007h/BX=0002h
Format of port record block:
Offset Size Description
00h WORD number of 17-byte elements
02h 17 BYTEs element: byte 00h = input port type, 01h-10h = port
(see AX=0001h#"Sosock" for port format)
--------N-610007BX0005-----------------------
INT 61 - Banyan VINES - GET USER NAME
AX = 0007h
BX = 0005h
DS:DX -> 64-byte buffer for user's StreetTalk name
Return: AX = status
0000h successful
0001h network software not installed or incompatible
Note: if no user logged in, first byte of returned name will be 00h
SeeAlso: AX=0007h/BX=0007h
--------N-610007BX0006-----------------------
INT 61 - Banyan VINES - TRANSLATE ERROR INTO ASCII STRING
AX = 0007h
BX = 0006h
SI = error code (>100)
DS:DX -> 80-byte buffer for error text
Return: AX = status
0000h successful
0001h network software not installed or incompatible
--------N-610007BX0007-----------------------
INT 61 - Banyan VINES - VERIFY EXISTENCE OF NAME AND RETURN CANONICAL FORM
AX = 0007h
BX = 0007h
DS:DX -> NiceName block (see below)
Return: AX = status (see AX=0007h/BX=0002h)
SeeAlso: AX=0007h/BX=0005h,AX=0007h/BX=0008h
Format of NiceName block:
Offset Size Description
00h WORD type of name
0064h organization
00C8h group
012Ch item
02h WORD pointer to ASCIZ input name
04h WORD pointer to 64-byte buffer for output name
--------N-610007BX0008-----------------------
INT 61 - Banyan VINES - ENUMERATE StreetTalk NAMES
AX = 0007h
BX = 0008h
DS:DX -> enumerate block (see below)
Return: AX = status
0000h successful
0411h all matching names have been returned
0412h some groups unavailable, all available matches returned
Note: each program using this call should continue until a nonzero status
is returned; otherwise, some resources will not be freed for several
hours
SeeAlso: AX=0007h/BX=0007h
Format of enumerate block:
Offset Size Description
00h WORD return code
02h WORD pointer to pattern string
04h WORD enumerate type
0064h organization
00C8h group
012Ch item
06h WORD enumerate class
0000h unspecified (return all matching items)
0001h user names
0002h service names
0003h list names
0004h nicknames
08h WORD pointer to category criteria block (see below) or 0
0Ah WORD pointer to array of 64-byte returned names
0Ch WORD number of names returned
0Eh 6 BYTEs reserved for subsequent enumerated calls (set to zeros on first
call)
Format of category criteria block:
Offset Size Description
00h WORD exclude flag
0000h return only items with the specified categories
0001h return all items except those with the given categories
02h WORD number of categories
04h WORD category 1 value
06h WORD category 2 value
...
Values for common service categories:
0002h file service
0003h print service
0004h mail service
0005h StreetTalk
0006h time service
0008h semaphore service
0009h 3270/SNA service
000Ah asynchronous terminal emulation service
000Ch NETBIOS service
000Dh PC-based service
--------V-610008-----------------------------
INT 61 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - SET ZOOM OFFSET
AX = 0008h
BX = X start of zoom offset
CX = Y start of zoom offset
Notes: specifies the first byte of video memory to appear in the zoom window
INT 61 is the default interrupt; the actual interrupt number can be
obtained by calling INT 16/AH=FFh
not all vendors include the Tseng TSR which supports these functions
SeeAlso: INT 16/AH=FFh"OPTIMA",INT 61/AX=0000h"OPTIMA",INT 61/AX=0006h"OPTIMA"
--------N-610008BX0002-----------------------
INT 61 - Banyan VINES - POST MESSAGE ON LOCAL DISPLAY
AX = 0008h
BX = 0002h
CX = flags
bit 0: message will remain on screen until user presses ^X
bit 1: ring bell after displaying message
bit 2: blink
DS:DX -> ASCIZ string to display (only first 80 chars used)
Return: AX = status
0000h successful
000Bh message display function currently busy
000Ch message queue full
Note: queues up to three messages to be displayed on the bottom line
SeeAlso: AX=0008h/BX=0003h
--------N-610008BX0003-----------------------
INT 61 - Banyan VINES - INTERCEPT VINES 25th-LINE MESSAGES AT LOCAL PC
AX = 0008h
BX = 0003h
DS:DX -> request block
Return: AX = status
0000h successful
0001h network software not installed or incompatible
Notes: message handler should not call BIOS or DOS functions, and should
either call next handler or simply return
to stop intercepting messages, set prev and next request blocks to
point at each other
SeeAlso: AX=0008h/BX=0002h
Format of request block:
Offset Size Description
00h DWORD pointer to user-written message handler
04h DWORD pointer to next request block (filled in by VINES)
08h DWORD pointer to previous request block (filled in by VINES)
0Ch DWORD pointer to message storage area (filled by VINES) (see below)
Format of message storage area:
Offset Size Description
00h 16 BYTEs IPC port of message sender (see AX=0001h#"Sosock")
10h BYTE message flags
11h WORD reserved
13h BYTE length of message
14h 80 BYTEs message text
--------N-61000A-----------------------------
INT 61 - Banyan VINES - SECONDARY 3270 INTERFACE
AX = 000Ah
Note: either 3270/SNA or 3270/BSC interface will use AX=000Ah, depending on
which is loaded second. The first interface loaded will use AX=0002h
SeeAlso: INT 61/AX=0002h
--------N-6101-------------------------------
INT 61 - Banyan VINES - CHECK SERVICE
AH = 01h
AL = service ID
01h communications
02h primary 3270 emulation
03h async terminal emulation
04h file deflection
07h StreetTalk
08h environment
0Ah secondary 3270 emulation
0Bh semaphore service
0Ch 3270 emulation active status
0Dh 3270 keyboard interrupt simulator
Return: AX = status
0000h installed
0001h not installed
0002h invalid ID
--------N-6101--BX0000-----------------------
INT 61 u - PC/TCP kernel v2.1+ - "net_config" - CONFIGURE RUNNING KERNEL
AH = 01h
BX = 0000h
DH = tag number
DL = device number
DS:SI -> buffer to send to kernel
ES:DI -> integer containing size of buffer
Return: CF clear if successful
CF set on error
AX = error code (see INT 61"PC/TCP")
Notes: there are a large number of tags available; the items returned
all refer to local kernel configuration, and are not needed in
normal use.
SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=02"PC/TCP"
--------N-6102-------------------------------
INT 61 - Banyan VINES - GET REVISION NUMBER
AH = 02h
DS:DX -> 2-byte buffer for result
Return: AX = 0000h installed
DS:DX buffer contains revision number as
10000d * major_ver + 100d * minor_ver + patch_revision
--------N-6102--BX0000-----------------------
INT 61 u - PC/TCP kernel v2.1+ - "get_kernel_info" - GET MISCELLAN LOCAL INFO
AH = 02h
BX = 0000h
DH = tag number
DL = device number
DS:SI -> buffer for result (up to 48 bytes for version <= 2.2)
ES:DI -> integer containing size of buffer
Return: CF clear if successful
Data loaded into specified buffer, and size value altered
CF set on error
AX = error code (see INT 61"PC/TCP")
Notes: there are a large number of tags available; the items returned
all refer to local kernel configuration, and are not needed in
normal use.
SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=01h"PC/TCP"
--------N-6105-------------------------------
INT 61 - PC/TCP kernel v2.05+ - "get_addr" - GET INTERNET ADDRESS OF NET DESCR
AH = 05h
BX = network descriptor
Return: CF clear if successful
DX:AX = Internet address of ND
CF set on error
AX = error code (see INT 61"PC/TCP")
Notes: the installation check consists of testing for the signature "TCPTSR"
three bytes beyond the start of the interrupt handler
INT 61 is the default; PC/TCP v2.05 may be configured to use any
interrupt from 20h through E0h
SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=16h"PC/TCP"
--------N-6106-------------------------------
INT 61 - PC/TCP kernel v2.05 - "net_info" - GET INTERFACE STATISTICS
AH = 06h
BX = network descriptor (must be allocated and open)
DS:SI -> 38-byte buffer (see below)
Return: CF clear if successful
buffer filled
CF set on error
AX = error code (see INT 61"PC/TCP")
Desc: returns the statistics relevant to the particular network interface
used by the specified network descriptor
SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=05h"PC/TCP"
Format of buffer:
Offset Size Description
00h WORD interface class (e.g. 802.3)
02h WORD type (manufacturer) of interface
04h WORD interface number
06h DWORD (big-endian) IP address of interface
0Ah DWORD subnet mask
0Eh WORD 0001h if interface is up
10h DWORD total packets received
14h DWORD total packets sent
18h DWORD receive errors
1Ch DWORD send errors
20h WORD length of local net address (e.g. 0006h for Ethernet)
22h DWORD pointer to local net address
--------N-6107-------------------------------
INT 61 - PC/TCP kernel v2.05+ - "net_globalize" - MAKE NET DESCRIPTOR GLOBAL
AH = 07h
BX = local network descriptor
Return: CF clear if successful
AX = global network descriptor
CF set on error
AX = error code (see INT 61"PC/TCP")
Notes: the new network descriptor can be accessed from all processes and is
independent of DOS
SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=08h"PC/TCP"
SeeAlso: INT 61/AH=29h
--------N-6108-------------------------------
INT 61 - PC/TCP kernel v2.05+ - "net_release" - CLOSE A NETWORK DESCRIPTOR
AH = 08h
BX = network descriptor
Return: CF clear if successful
CF set on error
AX = error code (see INT 61"PC/TCP")
Note: the descriptor will be closed and resources released. If a stream
descriptor, the protocol (FIN etc) is completed unless the
non-blocking option has been set.
SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=09h"PC/TCP"
--------N-6109-------------------------------
INT 61 - PC/TCP kernel v2.05+ - "net_releaseall" - CLOSE ALL NON-GLOBAL DESCRS
AH = 09h
Return: CF clear
Notes: this call performs function 08h on every non-global network descriptor.
Global descriptors must be released individually.
INT 61 is the default; PC/TCP v2.05 may be configured to use any
interrupt from 20h through E0h
SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=08h"PC/TCP"
--------N-610A-------------------------------
INT 61 - PC/TCP kernel v2.05 - "net_send" - ???
AH = 0Ah
???
Return: ???
Note: this function is described as "unused" in the v2.05 and v2.2
documentation
SeeAlso: AH=0Bh
--------N-610B-------------------------------
INT 61 - PC/TCP kernel v2.05 - "net_sendto" - ???
AH = 0Bh
???
Return: ???
Note: this function is described as "unused" in the v2.05 and v2.2
documentation
SeeAlso: AH=0Ah
--------N-610C-------------------------------
INT 61 u - PC/TCP kernel v2.05+ - "net_stat" - GET CONNECTION STATISTICS
AH = 0Ch
BX = network descriptor or one of the following:
FFFCh for kernel ICMP statistics
FFFDh for kernel UDP statistics
FFFEh for kernel IP statistics
FFFFh for kernel TCP statistics
DS:DX -> 64-byte buffer
Return: CF clear if successful
buffer filled
CF set on error
AX = error code (see INT 61"PC/TCP")
Note: the fields filled in for a network descriptor depend on the protocol
family used by that descriptor's connection
SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP"
Format of kernel TCP statistics:
Offset Size Description
00h 16 BYTEs unused
10h DWORD bytes sent
14h DWORD bytes received
18h 8 BYTEs unused
20h DWORD packets sent
24h DWORD packets received
28h DWORD bad checksums
2Ch DWORD count of window ignored by remote
30h DWORD timeouts
34h DWORD resets
38h DWORD duplicate packets
3Ch DWORD retransmits
Format of kernel IP statistics:
Offset Size Description
00h 8 BYTEs unused
08h DWORD invalid IP header length errors
0Ch DWORD protocol errors (unwanted packets)
10h DWORD duplicate fragments received
14h DWORD bad fragments received
18h DWORD security errors
1Ch DWORD count of bad IP addresses received
20h DWORD packets sent
24h DWORD packets received
28h DWORD bad checksums received
2Ch DWORD total IP protocol errors
30h DWORD fragmentation errors
34h DWORD IP packets discarded + bad security + bad fragments
38h DWORD fragments received
3Ch 4 BYTEs unused
Format of kernel UDP statistics:
Offset Size Description
00h 28 BYTEs unused
1Ch DWORD packets dropped for lack of buffers
20h DWORD packets sent
24h DWORD packets received
28h DWORD bad checksums
2Ch DWORD port not listening errors
30h 4 BYTEs unused
34h DWORD truncated receives
38h 8 BYTEs unused
Format of kernel ICMP statistics:
Offset Size Description
00h DWORD "TimeEx" sent
04h DWORD "TimeEx" received
08h DWORD "ParamProb" sent
0Ch DWORD "ParamProb" received
10h DWORD redirects received
14h DWORD source quenches received
18h DWORD ICMP Echo Requests ("ping") sent
1Ch DWORD ICMP Echo Requests received
20h DWORD packets sent
24h DWORD packets received
28h DWORD bad packets received
2Ch DWORD "DestUn" received
30h DWORD packet send errors
34h DWORD "DestUn" sent
38h DWORD ICMP Echo replies received
3Ch DWORD ICMP Echo replies sent
--------N-610D-------------------------------
INT 61 - PC/TCP kernel v2.05+ - "is_netnd" - CHECK IF NETWORK DESCRIPTOR VALID
AH = 0Dh
BX = possible network descriptor
Return: CF clear if valid
CF set on error
AX = error code (see INT 61"PC/TCP")
SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=08h"PC/TCP"
SeeAlso: INT 61/AH=22h
--------N-610E-------------------------------
INT 61 - PC/TCP kernel v2.05+ - "net_select" - DETECT READINESS OF NETWORK
AH = 0Eh
BX = maximum value of network descriptor for which to return info
DS:DX -> 32-bit (max) array of bit flags for read readiness
ES:DI -> 32-bit (max) array of bit flags for write readiness
Return: CF clear
Notes: bits in the DS:DX buffer are set if the corresponding network
descriptor may be read without blocking; bits in the ES:DI buffer
are set if the corresponding network descriptor may be written
without blocking. This implies that the network descriptor has
opened correctly and the protocol initialized.
the installation check consists of testing for the signature "TCPTSR"
three bytes beyond the start of the interrupt handler
INT 61 is the default; PC/TCP v2.05 may be configured to use any
interrupt from 20h through E0h
SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP"
--------N-610F-------------------------------
INT 61 - PC/TCP kernel v2.05+ - "get_netversion" - GET SOFTWARE VERSION
AH = 0Fh
Return: CF clear
AX = version (AH = major, AL = minor)
BX = patch level
Note: patch levels are no longer used starting with version 2.10; instead,
the minor version level is incremented.
SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP"
--------N-6110-------------------------------
INT 61 - PC/TCP kernel v2.05+ - "net_shutdown" - UNINSTALL
AH = 10h
Return: CF clear if successful
CF set on error
AX = error code (see INT 61"PC/TCP")
SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP"
--------N-6111-------------------------------
INT 61 - PC/TCP kernel v2.05+ - "disable_async" - DISABLE ASYNCHRONOUS HANDLERS
AH = 11h
Return: CF clear
AX = previous state
0000h async calls were already disabled
else async calls were enabled
SeeAlso: INT 61"PC/TCP",INT 61/AH=12h
--------N-6112-------------------------------
INT 61 - PC/TCP kernel v2.05+ - "enable_async" - ENABLE ASYNCHRONOUS HANDLERS
AH = 12h
Return: CF clear
AX = previous state
0000h async calls were disabled
else async calls were already enabled
SeeAlso: INT 61"PC/TCP",INT 61/AH=11h
--------N-6113-------------------------------
INT 61 - PC/TCP kernel v2.05 - "net_connect" - OPEN A NETWORK CONNECTION
AH = 13h
BX = network descriptor (FFFFh for automatic net_getdesc)
DX = protocol (see below)
DS:SI -> buffer for "addr" structure (see below)
Return: CF clear if successful
AX = network descriptor used or allocated
CF set on error
AX = error code (see INT 61"PC/TCP")
Notes: invokes AH=22h if BX=FFFFh on entry; also invokes AH=19h in various
cases
will wait for protocol on stream connections unless non-blocking was
set with AH=20h
SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=18h,INT 61/AH=23h
Values for protocol:
0001h raw net (undocumented)
0002h raw IP
0003h datagram (UDP)
0004h stream (TCP)
0005h raw ICMP
Format of structure "addr":
Offset Size Description
00h DWORD Internet address (network order)
04h WORD remote socket number (network order)
06h WORD local socket number (network order) 0000h means "you choose"
08h BYTE protocol (see above)
--------N-6114-------------------------------
INT 61 u - PC/TCP kernel v2.05 - "net_recv" - NO LONGER SUPPORTED
AH = 14h
BX = network descriptor
Return: CF set
AX = 0018h (see INT 61"PC/TCP")
Note: displays error message "Illegal system call! Please upgrade your
PCserver software" to standard output
SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=0Ah,INT 61/AH=15h
--------N-6115-------------------------------
INT 61 - PC/TCP kernel v2.05 - "net_recvfrom" - ???
AH = 15h
???
Return: ???
Note: this function is described as "unused" in the v2.2 documentation
SeeAlso: INT 61/AH=0Bh,INT 61/AH=14h
--------N-6116-------------------------------
INT 61 - PC/TCP kernel v2.05+ - "net_peer" - GET DATA ON REMOTE PEER
AH = 16h
BX = network descriptor
DS:DX -> 9-byte buffer for "addr" structure (see AH=13h)
Return: CF clear if successful
buffer filled
CF set on error
AX = error code (see INT 61"PC/TCP")
SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP"
--------N-6117-------------------------------
INT 61 - PC/TCP kernel v2.05+ - "net_reconfig" - RE-READ KERNEL CONFIGURATION
AH = 17h
Return: CF clear if successful
CF set on error
AX = error code (see INT 61"PC/TCP")
Note: this routine is deprecated in v2.1+ and will eventually be withdrawn;
in v2.1+, this function calls AH=01h which should be used instead
SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=01h"PC/TCP"
--------N-6118-------------------------------
INT 61 - PC/TCP kernel v2.05+ - "net_eof" - CLOSE TRANSMIT SIDE OF CONNECTION
AH = 18h
BX = network descriptor
Return: CF clear if successful
CF set on error
AX = error code (see INT 61"PC/TCP")
Note: a TCP "FIN" command is sent and no further data may be transmitted,
although the connection remains open
SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=13h"PC/TCP"
--------N-6119-------------------------------
INT 61 - PC/TCP kernel v2.05+ - "net_abort" - RESET A NETWORK CONNECTION
AH = 19h
BX = network descriptor
Return: CF clear if successful
CF set on error
AX = error code (see INT 61"PC/TCP")
Desc: immediately destroys the specified connection
Note: send a TCP "RST" command if a stream connection is open
SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=24h
--------N-611A-------------------------------
INT 61 - PC/TCP kernel v2.05+ - "net_write" - WRITE TO THE NETWORK
AH = 1Ah
BX = network descriptor
CX = number of bytes to transmit (0000h allowed)
DX = send options (see below)
DS:SI -> data to be written
Return: CF clear if successful
AX = number of bytes actually written
DX = ???
CF set on error
AX = error code (see INT 61"PC/TCP")
Notes: the installation check consists of testing for the signature "TCPTSR"
three bytes beyond the start of the interrupt handler
INT 61 is the default; PC/TCP v2.05 may be configured to use any
interrupt from 20h through E0h
SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=1Bh,INT 61/AH=1Ch
Bitfields for send options:
bit 0 signal "URG"ent data
bit 3 attempt rerouting on non-stream calls if first attempt fails
bit 4 send data with PUSH flag (no override of Nagle)
(see option 0Ch)
bit 5 fail rather than truncating datagram
bit 6 fail rather than blocking
bit 7 broadcast packet
--------N-611B-------------------------------
INT 61 - PC/TCP kernel v2.05+ - "net_read" - READ FROM THE NETWORK
AH = 1Bh
BX = network descriptor
CX = maximum number of bytes to read
DX = receive options (see below)
DS:SI -> buffer for data
ES:DI -> "addr" structure (see AH=13h) for remote from which to read
0000h:0000h for any
Return: CF clear if successful
AX = number of bytes actually read
DX = ???
CF set on error
AX = error code (see INT 61"PC/TCP")
SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=1Ah,INT 61/AH=1Dh
Bitfields for receive options:
bit 1 do not remove data from queue, just copy it
bit 2 do not copy data, just remove it from queue
bit 5 fail if datagram would be truncated
bit 6 do not block, return error if no data available
Note: special case for UDP: if both bits 1 and 2 set, return num of datagrams
--------N-611C-------------------------------
INT 61 - PC/TCP kernel v2.05+ - "net_writeto" - WRITE A DATAGRAM
AH = 1Ch
BX = network descriptor
CX = number of bytes to transmit (0000h allowed)
DX = send options (see AH=1Ah)
DS:SI -> data to be written
ES:DI -> "addr" structure (see AH=13h)
Return: CF clear if successful
AX = number of bytes actually written
DX = ???
CF set on error
AX = error code (see INT 61"PC/TCP")
Note: this function differs from AH=1Ah in that the address and socket
numbers can be overridden
SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=1Ah,INT 61/AH=1Dh
--------N-611D-------------------------------
INT 61 - PC/TCP kernel v2.05+ - "net_readfrom" - READ A DATAGRAM
AH = 1Dh
BX = network descriptor
CX = maximum number of bytes to read
DX = receive options (see AH=1Bh)
DS:SI -> buffer for received data
ES:DI -> 9-byte buffer containing "addr" structure (see AH=13h)
Return: CF clear if successful
AX = number of bytes read
DX = ???
CF set on error
AX = error code (see INT 61"PC/TCP")
Notes: this function can read from any host or a designated host depending
on settings in the "addr" structure
only for use with datagram or Raw descriptors
SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=1Bh,INT 61/AH=1Ch
--------N-611E-------------------------------
INT 61 - PC/TCP kernel v2.05+ - "net_flush" - FLUSH PENDING DATA
AH = 1Eh
BX = network descriptor
Return: CF clear if successful
CF set on error
AX = error code (see INT 61"PC/TCP")
Note: bufferred data is transmitted immediately, overriding Nagle's algorithm
if necessary
SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP"
--------N-611F-------------------------------
INT 61 - PC/TCP kernel v2.05+ - "net_asynch" - SET UP ASYNCHRONOUS CALL-BACK
AH = 1Fh
BX = network descriptor
CX = event type (see below)
DS:SI -> event handler routine
ES:DI = 32-bit hint passed to handler
Return: CF clear if successful
DS:DX -> previous handler
CF set on error
AX = error code (see INT 61"PC/TCP")
Note: ICMP messages do not trigger events on stream connections
SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP"
Values for event type:
00h alarm
01h open (successfully opened stream connection)
02h receive (data available)
03h transmit (ACK received on stream connection)
04h transmit flush???
05h foreign close (remote host closed data connection)
06h close (local host closed connection and protocol is complete)
07h error (error code passed to handler as arg)
Event handler called with:
BX = network descriptor
CX = event type (see above)
DS:DX -> arg
ES:DI = 32-bit hint value
STACK: small stack, possibly the DOS stack
--------N-6120-------------------------------
INT 61 - PC/TCP kernel v2.05+ - "set_option" - SET AN OPTION ON A DESCRIPTOR
AH = 20h
BX = network descriptor
CX = length of buffer (usually 04h)
DS:DX -> buffer containing option
SI = (ignored by v2.2-)
DI = option to set (see below)
Return: CF clear if successful
CF set on error
AX = error code (see INT 61"PC/TCP")
SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=21h
Values for option to set:
01h set non-blocking mode if non-zero
02h timeout of call in milliseconds
03h user-defined 4-byte magic cookie (not used by kernel)
04h TCP window or UDP buffer count (WORD, unsigned)
06h do TCP keep-alives if non-zero
09h (v2.1+) set IP precedence
0Ah (v2.1+) set IP type of service
0Bh use a privileged port if port = 0
0Ch turn off TCP PUSH bit and don't flush buffer every write (see AH=1Ah)
Note: use "C" true or false values for boolean options
--------N-6121-------------------------------
INT 61 - PC/TCP kernel v2.05+ - "get_option" - GET OPTIONS APPLIED TO NET DESCR
AH = 21h
BX = network descriptor
CX = length of buffer
DS:DX -> buffer for return values
SI = 0004h (ignored by v2.2-)
DI = option (see AH=20h)
Return: CF clear if successful
DS:DX -> value (usually 32 bits) returned by selected option
CF set on error
AX = error code (see INT 61"PC/TCP")
SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=20h
--------N-6122-------------------------------
INT 61 u - PC/TCP kernel v2.05+ - "net_getdesc" - ALLOCATE NETWORK DESCRIPTOR
AH = 22h
Return: CF clear if successful
AX = network descriptor
CF set on error
AX = error code (see INT 61"PC/TCP")
Note: the descriptor will be an integer in the range 00h-1Fh, and a DOS call
is made to allocate this as a file descriptor. Hence a number may
not refer to a PC/TCP network descriptor and a DOS file handle
simultaneously.
SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=13h,INT 61/AH=29h
--------N-6123-------------------------------
INT 61 - PC/TCP kernel v2.05+ - "net_listen" - LISTEN FOR INCOMING CONNECTIONS
AH = 23h
BX = network descriptor or FFFFh to allocate descriptor
DX = type of service
DS:SI -> "addr" structure (see AH=13h)
Return: CF clear if successful
AX = network descriptor
CF set on error
AX = error code (see INT 61"PC/TCP")
Notes: type of service and "addr" structure are as for AH=13h
any of the address structure can be zero; normally local socket number
is filled in prior to call
SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=13h
--------N-6124-------------------------------
INT 61 - PC/TCP kernel v2.05+ - "net_abortall" - RESET ALL NETWORK CONNECTIONS
AH = 24h
Return: always successful
Note: performs "net_abort" (AH=19h) on all open non-global descriptors
SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=19h
--------N-6125-------------------------------
INT 61 - PC/TCP kernel v2.05+ - "ad_res_name" - GET HOST NAME GIVEN ADDRESS
AH = 25h
DX,BX = IP address in network order
CX = length of buffer for name
DS:SI -> buffer for host name
Return: CF clear if successful
buffer filled with ASCIZ host name
CF set on error
AX = error code (see INT 61"PC/TCP")
Note: this function will use the host table and or DNS to resolve the
address, depending on kernel configuration. Use this call for the
normal gethostbyaddr function.
SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=26h,INT 61/AH=27h
--------N-6126-------------------------------
INT 61 - PC/TCP kernel v2.05+ - "ad_htable" - GET HOST NAME FROM LOCAL TABLE
AH = 26h
DX,BX = IP address in network order
CX = length of buffer
DS:SI -> buffer for host name
Return: CF clear if successful
buffer filled with ASCIZ host name
CF set on error
AX = error code (see INT 61"PC/TCP")
Note: normally one would use AH=25h instead of this function
SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=25h,INT 61/AH=27h
--------N-6127-------------------------------
INT 61 - PC/TCP kernel v2.05+ - "ad_domain" - GET HOST NAME FROM DNS
AH = 27h
DX,BX = IP address in network order
CX = length of buffer
DS:SI -> buffer for host name
Return: CF clear if successful
buffer filled with ASCIZ host name
CF set on error
AX = error code (see INT 61"PC/TCP")
Note: normally one would use AH=25h instead of this function
SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=25h,INT 61/AH=26h
--------N-6128-------------------------------
INT 61 - PC/TCP kernel v2.05+ - "net_swap" - EXCHANGE TWO NETWORK DESCRIPTORS
AH = 28h
BX = network descriptor 1
CX = network descriptor 2
Return: CF clear if successful
CF set on error
AX = error code (see INT 61"PC/TCP")
Note: the two descriptors will exchange places; both must be local or both
global
SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP"
--------N-6129-------------------------------
INT 61 - PC/TCP kernel v2.05+ - "net_getglobdesc" - ALLOCATE GLOBAL DESCRIPTOR
AH = 29h
Return: CF clear if successful
AX = network descriptor
CF set on error
AX = error code (see INT 61"PC/TCP")
Note: use this function rather than AH=22h to avoid a DOS call by the PC/TCP
kernel; the returned descriptor will be >= 40h and cannot be used
with "net_select" (AH=0Eh)
SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=07h"PC/TCP"
SeeAlso: INT 61/AH=22h
--------N-612A-------------------------------
INT 61 - PC/TCP kernel v2.05+ - GET CONFIGURATION INFORMATION
AH = 2Ah
DS:SI -> 26-byte buffer for configuration information (see below)
Return: CF clear
AX = 0000h
buffer filled
Note: size of buffer may vary with kernel version; 26 bytes is the size for
versions 2.05 through 2.2
SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP"
Format of configuration information:
Offset Size Description
00h BYTE maximum TCP connections available
01h BYTE maximum UDP connections available
02h BYTE maximum IP connections available
03h BYTE maximum Raw Net connections available
04h BYTE number of TCP connections currently in use
05h BYTE number of UDP connections currently in use
06h BYTE number of IP connections currently in use
07h BYTE number of Raw Net connections currently in use
08h WORD number of local network descriptors active
0Ah WORD number of global network descriptors active
0Ch BYTE maximum header size on network
0Dh BYTE maximum trailer size on network
0Eh WORD size of large packet buffer
10h WORD number of network interfaces attached
12h DWORD milliseconds since kernel started
16h DWORD IP broadcast address
--------N-612B-------------------------------
INT 61 - PC/TCP kernel v2.02+ - "net_alarm" - SET TIMED ASYNCHRONOUS EVENT
AH = 2Bh
BX = network descriptor
CX,DX = time before alarm in milliseconds
DS:SI -> handler which will receive call (see INT 61/AH=1Fh)
ES:DI = 32-bit cookie passed to handler
Return: CF clear if successful
CF set on error
AX = error code (see INT 61"PC/TCP")
Note: this function will case a NET_AS_ALARM to be generated; it is intended
for TSRs, etc. to regain control periodically
SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP"
--------N-6130-------------------------------
INT 61 - PC/TCP kernel v2.05+ - "icmp_ping" - SEND ICMP ECHO REQUEST (PING)
AH = 30h
BX,DX = IP address of host
CX = length of data to send
Return: CF clear if successful (i.e. reply received)
CF set on error
AX = error code (see INT 61"PC/TCP")
SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP"
--------N-61---------------------------------
INT 61 u - PC/TCP kernel v2.05 - NOP for SLIP kernel
AH = function
31h "net_add_route"
32h "net_del_route"
33h "net_dump_routes"
Notes: these functions are described as "unused" in the v2.2 documentation
router configuration can be altered using INT 61/AH=01h
--------N-6134-------------------------------
INT 61 U - PC/TCP kernel v2.1+ - "icmp_destun" - ???
AH = 34h
???
Return: ???
Note: this function is described as "reserved" in the v2.2 documentation
--------N-6150-------------------------------
INT 61 - PC/TCP kernel v2.05+ - "nm_prs_addr" - TRANSLATE NUMERICAL IP ADDRESS
AH = 50h
DS:DX -> ASCIZ IP address as "dotted quad" (max 127 chars)
Return: CF clear if successful
DX:AX -> IP address
CF set on error
AX = error code (see INT 61"PC/TCP")
SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=54h
--------N-6151-------------------------------
INT 61 - PC/TCP kernel v2.05+ - "nm_htable" - RESOLVE NAME USING HOST TABLE
AH = 51h
CX = size of destination buffer
DS:DX -> ASCIZ host name (max 127 chars)
ES:DI -> destination buffer or 0000h:0000h
Return: CF clear if successful
DX:AX -> IP address of host
destination buffer filled with canonical host name
CF set on error
AX = error code (see INT 61"PC/TCP")
Note: this function calls DOS, and can fail if the DOS call fails
SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=54h
--------N-6152-------------------------------
INT 61 - PC/TCP kernel v2.05+ - "nm_domain" - RESOLVE NAME USING DNS
AH = 52h
CX = size of destination buffer
DS:DX -> ASCIZ host name (max 127 chars)
ES:DI -> destination buffer or 0000h:0000h
Return: CF clear if successful
DX:AX -> IP address of host
destination buffer filled with canonical host name
CF set on error
AX = error code (see INT 61"PC/TCP")
Note: this function will poll all configured domain name servers if necessary
SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=54h
--------N-6153-------------------------------
INT 61 - PC/TCP kernel v2.05- - "nm_ien116" - RESOLVE HOST NAME USING IEN116
AH = 53h
DS:DX -> ASCIZ name to be resolved (max 127 chars)
Return: CF clear if successful
DX:AX -> IP address of host
CF set on error
AX = error code (see INT 61"PC/TCP")
Note: this function is not supported by v2.10+
SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=54h
--------N-6154-------------------------------
INT 61 - PC/TCP kernel v2.05+ - "nm_res_name" - RESOLVE HOST NAME
AH = 54h
CX = size of destination buffer
DS:DX -> ASCIZ host name (max 127 chars)
ES:DI -> destination buffer or 0000h:0000h
Return: CF clear if successful
DX:AX -> IP address of host
destination buffer filled with canonical host name
CF set on error
AX = error code (see INT 61"PC/TCP")
Note: this function uses all configured methods in turn to resolve the
name (numerical, then host table, then DNS, then IEN116)
BUG: the SLIP kernel for v2.05 bounds-checks the wrong register, so values
greater than 54h in AH may crash the system. Other kernels may have
this bug as well; it has been fixed in the v2.2 SLIPDRV kernel.
SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=50h,INT 61/AH=51h
SeeAlso: INT 61/AH=52h,INT 61/AH=53h
--------*-62---------------------------------
INT 62 - reserved for user interrupt
--------d-62---------------------------------
INT 62 - Adaptec and OMTI controllers - DRIVE 0 DATA
Notes: this vector stores the third four bytes of the parameter table for
hard disk 0
SeeAlso: INT 60"Adaptec",INT 61"Adaptec",INT 63"Adaptec"
--------b-62---------------------------------
INT 62 - HP 95LX - USED BY CALCULATOR
SeeAlso: INT 60"HP 95LX"
----------62---------------------------------
INT 62 - MS SQL Server/Sybase DBLIBRARY interface - ???
AH = function (00h to 07h)
CX = FFFEh
DX = FFFFh
???
Return: ???
Note: the installation check consists of testing for the string "DBLIBRARY"
2 bytes past the interrupt handler
SeeAlso: AH=08h"SQL"
Index: installation check;MS SQL Server|installation check;Sybase DBLIBRARY
--------V-620000-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_GETMODE" - GET CURRENT VIDEO MODE NUMBER
AX = 0000h
ES:BX -> ???
Return: AX = current video mode number
Notes: FGDRIVER is the external video driver for the shareware
Fastgraph/Light by Ted Gruber Software
the installation check consists of testing for the signature "FG" ten
bytes beyond the start of the interrupt handler
SeeAlso: AX=0001h,AX=0006h
Index: installation check;Fastgraph/Light
--------V-620001-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_SETMODE" - SELECT VIDEO MODE AND INITIALIZE
AX = 0001h
BX = new video mode or FFFFh for current mode
ES:DX -> ???
Notes: video modes are the same as the BIOS video modes except for
0Bh Hercules graphics 720x348
0Ch Hercules graphics 320x200
15h VGA graphics 320x400x256
16h VGA graphics 320x240x256
17h VGA graphics 320x480x256
this call resets the active video page to page 0000h, the clipping
region to the entire screen, text rows to 25, etc.
SeeAlso: AX=0000h,AX=0002h,INT 10/AH=00h
--------V-620002-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_TESTMODE" - CHECK IF VIDEO MODE AVAILABLE
AX = 0002h
BX = desired video mode (00h-17h)
CX = required number of video pages (ignore memory size if <= 0)
Return: AX = status
0000h mode not available with requested number of pages
0001h mode is available
SeeAlso: AX=0001h,AX=0003h,AX=0004h,AX=0005h
--------V-620003-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_BESTMODE" - GET BEST VIDEO MODE GIVEN RESOLUTN
AX = 0003h
BX = horizontal resolution
CX = vertical resolution
DX = number of video pages required (both physical and virtual)
Return: AX = proposed video mode number or FFFFh if no matching video mode
SeeAlso: AX=0002h,AX=0004h
--------V-620004-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_AUTOMODE" - GET VIDEO MODE WITH MOST FEATURES
AX = 0004h
Return: AX = proposed video mode number
Note: FGDRIVER is the external video driver for the shareware
Fastgraph/Light by Ted Gruber Software
SeeAlso: AX=0002h,AX=0003h,AX=0005h
--------V-620005-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_EGACHECK" - GET INFO ABOUT ACTIVE EGA DISPLAY
AX = 0005h
Return: AX = number of 64K banks of video memory, or 0000h if no EGA or EGA
without an Enhanced Color Display
SeeAlso: AX=0002h,AX=0003h
--------V-620006-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_RESET" - ERASE SCREEN AND RESTORE SCREEN ATTR
AX = 0006h
Notes: this call is ignored in graphics modes
the screen attributes are only restored if ANSI.SYS is loaded
SeeAlso: AX=0000h
--------V-620007-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_CURSOR" - SPECIFY WHETHER TEXT CURSR IS VISIBLE
AX = 0007h
BX = new state (0000h invisible, 0001h visible)
Note: this call is ignored in text modes
--------V-620008-----------------------------
INT 62 - FGDRIVER v1.10 - UNUSED
AX = 0008h to 0009h
Return: AX = 0000h
--------V-62000A-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_GETMAXX" - GET MAXIMUM COLUMN IN SCREEN SPACE
AX = 000Ah
Return: AX = maximum X coordinate in screen space
(or character space if in text mode)
SeeAlso: AX=000Bh,AX=0045h
--------V-62000B-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_GETMAXY" - GET MAXIMUM ROW IN SCREEN SPACE
AX = 000Bh
Return: AX = maximum Y coordinate in screen space
(or character space if in text mode)
SeeAlso: AX=000Ah,AX=0045h
--------V-62000C-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_XALPHA" - CONVERT SCREEN COLUMN TO CHAR COLUMN
AX = 000Ch
BX = screen space column
Return: AX = character space column containing specified coordinate
SeeAlso: AX=000Dh,AX=000Eh
--------V-62000D-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_YALPHA" - CONVERT SCREEN ROW TO CHARACTER ROW
AX = 000Dh
BX = screen space row
Return: AX = character space row containing specified coordinate
SeeAlso: AX=000Ch,AX=000Fh
--------V-62000E-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_XCONVERT" - CONVERT CHAR COLUMN TO SCREEN COL
AX = 000Eh
BX = character space column
Return: AX = screen space column of leftmost pixel in specified character col
SeeAlso: AX=000Ch,AX=000Fh
--------V-62000F-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_YCONVERT" - CONVERT CHARACTER ROW TO SCREEN ROW
AX = 000Fh
BX = character space row
Return: AX = screen space row of topmost pixel in specified character row
SeeAlso: AX=000Dh,AX=000Eh
--------V-620010-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_GETLINES" - GET TEXT ROWS FOR CURR VIDEO MODE
AX = 0010h
Return: AX = number of text rows on screen in current video mode
SeeAlso: AX=0011h
--------V-620011-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_SETLINES" - SET TEXT ROWS ON SCREEN
AX = 0011h
BX = new screen size (25, 43, 50)
SeeAlso: AX=0010h
--------V-620012-----------------------------
INT 62 - FGDRIVER v1.10 - UNUSED
AX = 0012h to 0013h
Return: AX = 0000h
--------V-620014-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_DEFCOLOR" - ASSIGN COLOR VALUE TO COLOR INDEX
AX = 0014h
BX = color index (0000h-00FFh)
CX = new color value (0 to maximum color value for current video mode)
Note: this call is ignored in text modes and 256-color graphics modes
SeeAlso: AX=0015h,AX=0016h,AX=001Dh
--------V-620015-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_GETCOLOR" - GET CURRENT TEXT ATTRIBUTE
AX = 0015h
Return: AX = current text attribute or color index (graphics modes)
Note: FGDRIVER is the external video driver for the shareware
Fastgraph/Light by Ted Gruber Software
SeeAlso: AX=0019h,AX=001Ah
--------V-620016-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_GETINDEX" - GET COLOR VALUE FOR COLOR INDEX
AX = 0016h
BX = color index (0000h to 00FFh)
Return: AX = color value for specified color index
Note: this call returns the value passed to it in text and 256-color
graphics modes
SeeAlso: AX=0014h,AX=001Ch
--------V-620017-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_PALETTE" - SET PALETTE / SET VIDEO DAC REGISTER
AX = 0017h
---CGA 4-color graphics---
BX = CGA paletee number
CX = background color
---CGA 2-color graphics---
BX ignored
CX = foreground color
---16-color graphics---
BX = palette register number
CX = palette value
---256-color graphics---
BX = DAC register number
CX = DAC value
Notes: ignored in text modes and Hercules graphics modes
few EGA/VGA adapters correctly set the foreground color in CGA mode 6
SeeAlso: AX=0018h,AX=001Dh
--------V-620018-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_PALETTES" - SET ALL PALETTE REGISTERS
AX = 0018h
ES:BX -> array of 16 WORDs containing values for palette registers
(or first 16 DAC registers in 256-color modes)
Note: ignored in text modes, CGA and Hercules graphics modes
SeeAlso: AX=0017h
--------V-620019-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_SETATTR" - SET TEXT-MODE CHARACTER ATTRIBUTE
AX = 0019h
BX = foreground
CX = background
DX = blink (0000h nonblinking, 0001h blink)
Note: this call is ignored in graphics modes
SeeAlso: AX=0015h,AX=001Ah,AX=0037h
--------V-62001A-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_SETCOLOR" - SET CURRENT COLOR
AX = 001Ah
BX = new color index (or text attribute in text modes)
SeeAlso: AX=0015h,AX=0019h
--------V-62001B-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_SETRGB" - SET VIDEO DAC REGISTER CONTENTS
AX = 001Bh
BX = palette or DAC register number
CX = red color component
DX = green component
SI = blue component
Notes: the register number may be negative for Tandy, PCjr, and 200-line
EGA graphics modes to specify an intense color
this call has no effect in text, CGA graphics, and Hercules graphics
modes
SeeAlso: AX=001Ch,AX=00A5h
--------V-62001C-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_GETRGB" - GET VIDEO DAC REGISTER CONTENTS
AX = 001Ch
ES:BX -> variable pointer record (see below)
CX = DAC register number
Return: variables updated
Note: this call is ignored in text modes and CGA/EGA video modes (since
they do not use DAC registers)
SeeAlso: AX=001Bh,AX=001Dh,AX=00A4h
Format of variable pointer record:
Offset Size Description
00h WORD segment of WORD buffer for red component of DAC register
02h WORD offset of WORD buffer for red component
04h WORD segment of WORD buffer for green component of DAC register
06h WORD offset of WORD buffer for green component
08h WORD segment of WORD buffer for blue component of DAC register
0Ah WORD offset of WORD buffer for blue component
--------V-62001D-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_MAPRGB" - MAP COLOR COMPONENTS INTO PALETTE VAL
AX = 001Dh
BX = red component
CX = green component
DX = blue component
Return: AX = mode-specific palette value corresponding to specified components
Note: only meaningful in 16-color graphics modes
SeeAlso: AX=0015h,AX=0017h
--------V-62001E-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_ERASE" - CLEAR THE ACTIVE VIDEO PAGE
AX = 001Eh
Note: sets each pixel to 0 in graphics modes, each character cell to a blank
with a gray foreground attribute in text modes
--------V-62001F-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_POINT" - DISPLAY A PIXEL
AX = 001Fh
BX = column
CX = row
Note: this call is ignored in text modes
SeeAlso: AX=0020h
--------V-620020-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_GETPIXEL" - GET COLOR OF SPECIFIED PIXEL
AX = 0020h
BX = column in screen space
CX = row in screen space
Return: AX = color value of pixel (0 to num_colors-1)
0000h in text modes
SeeAlso: AX=001Fh
--------V-620021-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_GETXPOS" - GET GRAPHICS CURSOR COLUMN
AX = 0021h
Return: AX = screen space X coordinate of graphics cursor position
SeeAlso: AX=0022h,AX=0023h,AX=0024h
--------V-620022-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_GETXPOS" - GET GRAPHICS CURSOR ROW
AX = 0022h
Return: AX = screen space Y coordinate of graphics cursor position
SeeAlso: AX=0021h,AX=0023h,AX=0024h
--------V-620023-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_MOVE" - SET GRAPHICS CURSOR POSITION
AX = 0023h
BX = new column
CX = new row
Note: this call is ignored in text modes
SeeAlso: AX=0021h,AX=0022h,AX=0024h
--------V-620024-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_MOVEREL" - ADJUST GRAPHICS CURSOR POSITION
AX = 0024h
BX = column offset
CX = row offset
Note: this call is ignored in text modes
SeeAlso: AX=0021h,AX=0022h,AX=0023h
--------V-620025-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_DRAW" - DRAW SOLID LINE TO ABSOLUTE POSITION
AX = 0025h
BX = endpoint column
CX = endpoint row
Notes: this call is ignored in text modes
the starting point is the current graphics cursor position; the cursor
position is updated
SeeAlso: AX=0026h,AX=0027h
--------V-620026-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_DRAWREL" - DRAW SOLID LINE TO RELATIVE POSITION
AX = 0026h
BX = endpoint column offset
CX = endpoint row offset
Notes: this call is ignored in text modes
the starting point is the current graphics cursor position; the cursor
position is updated
SeeAlso: AX=0025h,AX=0028h
--------V-620027-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_DASH" - DRAW DASHED LINE TO ABSOLUTE POSITION
AX = 0027h
BX = endpoint column
CX = endpoint row
DX = dash pattern (set bits cause drawn pixels)
Notes: this call is ignored in text modes
the starting point is the current graphics cursor position; the cursor
position is updated
SeeAlso: AX=0025h,AX=0028h
--------V-620028-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_DASHREL" - DRAW DASHED LINE TO RELATVE POSITION
AX = 0028h
BX = endpoint column offset
CX = endpoint row offset
DX = dash pattern (set bits cause drawn pixels)
Notes: this call is ignored in text modes
the starting point is the current graphics cursor position; the cursor
position is updated
SeeAlso: AX=0026h,AX=0027h
--------V-620029-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_SETCLIP" - SET CLIPPING REGION
AX = 0029h
BX = left edge of clipping region
CX = right edge of clipping region
DX = top edge of clipping region
SI = bottom edge of clipping region
SeeAlso: AX=004Ah,AX=004Ch,AX=0052h,AX=0054h
--------V-62002A-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_RECT" - DRAW UNFILLED RECTANGLE IN SCREEN SPACE
AX = 002Ah
BX = left edge column
CX = right edge column
DX = top edge row
SI = bottom edge row
SeeAlso: AX=002Bh,AX=002Ch,AX=002Eh,AX=00A2h
--------V-62002B-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_CLPRECT" - DRAW FILLED RECTANGLE IN SCREEN SPCE
AX = 002Bh
BX = screen space column of left edge
CX = screen space column of right edge
DX = screen space row of top edge
SI = screen space row of bottom edge
Note: this call is ignored in text modes
SeeAlso: AX=002Ah,AX=002Ch,AX=00A2h
--------V-62002C-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_DRECT" - DRAW DITHERED RECTANGLE IN SCRN SPACE
AX = 002Ch
BX = screen space column of left edge
CX = screen space column of right edge
DX = screen space row of top edge
SI = screen space row of bottom edge
ES:DI -> dithering matrix (video-mode dependent)
Note: this call is ignored in text modes
SeeAlso: AX=002Bh,AX=00A2h
--------V-62002D-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_ELLIPSE" - DRAW UNFILLED ELLIPSE IN SCRN SPACE
AX = 002Dh
BX = horizontal semi-axis length in screen space units
CX = vertical semi-axis length in screen space units
Notes: this call is ignored in text modes
the ellipse is centered at the current graphics cursor position
SeeAlso: AX=002Ah,AX=002Eh,AX=00A2h
--------V-62002E-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_POLYGON" - DRAW AN UNFILLED POLYGON
AX = 002Eh
CX = number of vertices in polygon
ES:BX -> variable pointer record (see below)
SeeAlso: AX=002Dh,AX=0030h,AX=00A2h
Format of variable pointer record:
Offset Size Description
00h WORD segment of WORD array containing vertex columns
02h WORD offset of WORD array containing vertex columns
04h WORD segment of WORD array containing vertex rows
06h WORD offset of WORD array containing vertex rows
--------V-62002F-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_PAINT" - FLOOD CLOSED REGION WITH COLOR
AX = 002Fh
BX = column
CX = row
Notes: fills an arbitrary closed region around the specified point with the
current color; the screen edges are not considered region boundaries
ignored in text modes
--------V-620030-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_CIRCLE" - DRAW UNFILLED CIRCLE
AX = 0030h
BX = radius in horizontal screen space units (> 0)
Notes: the circle is drawn in screen space, centered at the current graphics
cursor position
this call is ignored in text modes
SeeAlso: AX=00A2h
--------V-620031-----------------------------
INT 62 - FGDRIVER v1.10 - UNUSED
AX = 0031h
Return: AX = 0000h
--------V-620032-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_TEXT" - DISPLAY STRING OF CHARACTERS
AX = 0032h
CX = length of string
ES:BX -> string
Notes: the string is displayed staring at the text cursor position using the
current text attribute (text modes) or color index (graphics modes)
the text cursor position is updated after this call
SeeAlso: AX=001Ah,AX=0033h,AX=0035h,AX=0036h
--------V-620033-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_LOCATE" - SET TEXT-MODE CURSOR POSITION
AX = 0033h
BX = row
CX = column
Note: there are only eight text cursors shared by successive groups of
eight video pages (pages 0, 8, 16, ... share one cursor, 1, 9, ...
share the second, etc)
SeeAlso: AX=0034h
--------V-620034-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_WHERE" - GET CURRENT CURSOR POSITION
AX = 0034h
ES:BX -> variable pointers (see below)
Return: indicated variables filled with cursor row and column for active
display
Note: FGDRIVER is the external video driver for the shareware
Fastgraph/Light by Ted Gruber Software
SeeAlso: AX=0033h
Format of variable pointers:
Offset Size Description
00h WORD segment of WORD buffer for cursor row
02h WORD offset of WORD buffer for cursor row
04h WORD segment WORD buffer for cursor column
06h WORD offset WORD buffer for cursor column
--------V-620035-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_CHGATTR" - APPLY CURRENT TEXT ATTRIB TO CHARS
AX = 0035h
BX = number of characters to recolor
Notes: this call is ignored in graphics modes
starting at the current text cursor position, the specified number of
characters have their attributes to the current text attribute
SeeAlso: AX=0036h
--------V-620036-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_CHGTEXT" - DISPLAY STRING AT CURSOR POSITION
AX = 0036h
CX = length of string
ES:BX -> string to be displayed
Return: text cursor updated
Note: this call is ignored in graphics modes
SeeAlso: AX=0032h,AX=0035h
--------V-620037-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_GETATTR" - GET CHARACTER ATTRIB FOR POSITION
AX = 0037h
BX = row
CX = column
Return: AX = character attribute at specified location on active video page
Note: this call is ignored in graphics modes
SeeAlso: AX=0019h,AX=0038h
--------V-620038-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_GETCHAR" - GET CHARACTER FOR SCREEN POSITION
AX = 0038h
BX = row
CX = column
Return: AX = character at specified location on active video page
Note: this call is ignored in graphics modes
SeeAlso: AX=0037h
--------V-620039-----------------------------
INT 62 - FGDRIVER v1.10 - UNUSED
AX = 0039h to 003Bh
Return: AX = 0000h
--------V-62003C-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_GETPAGE" - GET ACTIVE VIDEO PAGE NUMBER
AX = 003Ch
Return: AX = active video page (0000h-003Fh)
SeeAlso: AX=003Dh,AX=003Eh,AX=0040h
--------V-62003D-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_SETPAGE" - SET ACTIVE VIDEO PAGE
AX = 003Dh
BX = new video page (0000h to 003Fh)
Note: the specified page must be a physical or virtual page
SeeAlso: AX=0001h,AX=003Ch,AX=003Fh,AX=0041h
--------V-62003E-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_GETVPAGE" - GET VISIBLE VIDEO PAGE NUMBER
AX = 003Eh
Return: AX = visible video page (0000h-003Fh)
SeeAlso: AX=003Ch,AX=003Fh,AX=0040h
--------V-62003F-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_SETVPAGE" - SET VISIBLE VIDEO PAGE
AX = 003Fh
BX = new video page (0000h to 003Fh)
Note: the specified page must be a physical or virtual page
SeeAlso: AX=0001h,AX=003Dh,AX=003Eh,AX=0041h
--------V-620040-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_GETHPAGE" - GET CURRENT HIDDEN VIDEO PAGE NUM
AX = 0040h
Return: AX = current hidden video page number (0000h-003Fh)
SeeAlso: AX=003Ch,AX=003Eh,AX=0041h
--------V-620041-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_SETHPAGE" - SET HIDDEN VIDEO PAGE
AX = 0041h
BX = new hidden page (0000h to 003Fh)
Note: specified page must be a physical page or a virtual page
SeeAlso: AX=003Dh,AX=003Fh,AX=0040h
--------V-620042-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_ALLOCATE" - CREATE VIRTUAL VIDEO PAGE
AX = 0042h
BX = page number (0000h-003Fh)
Return: AX = status
0000h successful
0001h specified page is a physical or logical page
0007h virtual page created, but memory control blocks corrupted
0008h not enough memory
Notes: FGDRIVER is the external video driver for the shareware
Fastgraph/Light by Ted Gruber Software
the amount of memory required by the virtual video page depends on the
current video mode
SeeAlso: AX=0043h,AX=009Dh,AX=009Fh
--------V-620043-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_FREEPAGE" - FREE VIRTUAL OR LOGICAL VIDEO PAGE
AX = 0043h
BX = page number (0000h-003Fh)
Return: AX = status
0000h successful
0001h specified page is a physical page
0007h virtual page released, but memory control blocks corrupted
0009h attempt to free a page which was never created
SeeAlso: AX=0042h,AX=009Dh,AX=009Eh,AX=009Fh
--------V-620044-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_GETADDR" - GET SEGMENT OF ACTIVE VIDEO PAGE
AX = 0044h
Return: AX = segment of active video page
--------V-620045-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_RESIZE" - SET GRAPHICS MODE VIDEO PAGE SIZE
AX = 0045h
BX = new page width in pixels
CX = new page height in pixels
Notes: the visible page must be set to 0000h before making this call
mouse, joysticks, expanded memory, and extended memory must be
reinitialized after this call
SeeAlso: AX=000Ah,AX=000Bh,AX=0075h,AX=007Ah,AX=00A0h,AX=00A1h
--------V-620046-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_GETMAP" - STORE IMAGE AS MODE-INDEPENDNT BITMAP
AX = 0046h
ES:BX -> buffer for video mode-independent bitmap
CX = width of bitmap in bytes
DX = height of bitmap in pixel rows
Return: each bit in bitmap is set if corresponding pixel is of the current
color, cleared otherwise
Note: this call is ignored in text modes
SeeAlso: AX=0047h,AX=0048h
--------V-620047-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_DRAWMAP" - DISPLAY MODE-INDEPENDENT BIT MAP
AX = 0047h
ES:BX -> bitmap (each set bit is pixel drawn in current color)
CX = width of bitmap in bytes
DX = height of bitmap in pixel rows
SeeAlso: AX=0046h,AX=004Ah,AX=004Dh,AX=0052h
--------V-620048-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_GETIMAGE" - STORE IMAGE AS BITMAP
AX = 0048h
ES:BX -> buffer for video mode-specific bitmap
CX = width of bitmap in bytes
DX = height of bitmap in pixel rows
SeeAlso: AX=0046h,AX=0049h,AX=0062h
--------V-620049-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_DRWIMAGE" - DISPLAY BITMAPPED IMAGE
AX = 0049h
ES:BX -> video mode-specific bitmap
CX = width of bitmap in bytes
DX = height of bitmap in pixel rows
Note: the image will be drawn with its lower left corner at the current
cursor position (either text or graphics)
SeeAlso: AX=0048h,AX=004Ah,AX=0062h
--------V-62004A-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_CLPIMAGE" - DISPLAY CLIPPED IMAGE (BITMAP)
AX = 004Ah
ES:BX -> mode-specific bitmap
CX = width of bit map in bytes
DX = height of bit map in pixel rows
Notes: this call is ignored in text modes
the image is drawn with its lower left corner at the current graphics
cursor position
the current clipping region is used, extended to a byte boundary
SeeAlso: AX=0029h,AX=0047h,AX=0049h,AX=004Ch,AX=0052h
--------V-62004B-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_REVIMAGE" - DISPLAY REVERSED IMAGE (BITMAP)
AX = 004Bh
ES:BX -> mode-specific bitmap
CX = width of bitmap in bytes
DX = height of bitmap in pixel rows
Notes: this call is ignored in text modes
the image is drawn with its lower left corner at the current graphics
cursor position
SeeAlso: AX=004Ah,AX=004Ch
--------V-62004C-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_FLPIMAGE" - DISPLAY INV CLIPPED IMAGE (BITMAP)
AX = 004Ch
ES:BX -> mode-specific bitmap
CX = width of bit map in bytes
DX = height of bit map in pixel rows
Notes: this call is ignored in text modes
the image is drawn with its lower left corner at the current graphics
cursor position
the current clipping region is used, extended to a byte boundary
SeeAlso: AX=0029h,AX=004Ah
--------V-62004D-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_DISPLAY" - DISPLAY IMAGE (STD PIXEL RUN FORMAT)
AX = 004Dh
ES:BX -> pixel run map (pairs of bytes: color index, count)
CX = number of pixel runs to display
DX = width of image in pixels (> 0)
Notes: this call is ignored in text modes
the image is displayed with its lower left corner at the current
graphics cursor position
SeeAlso: AX=0047h,AX=004Eh,AX=004Fh,AX=0050h,AX=0060h
--------V-62004E-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_DISPLAY" - DISPLAY IMAGE (PACKED PIXEL RUN FMT)
AX = 004Eh
ES:BX -> pixel run map (trios of bytes: colors, count1, count2; colors
contains the color for the first run in its high nybble and the
color for the second run in its low nybble)
CX = number of pixel runs to display
DX = width of image in pixels (> 0)
Notes: this call is ignored in text modes
the image is displayed with its lower left corner at the current
graphics cursor position
SeeAlso: AX=004Dh,AX=004Fh,AX=0050h,AX=0060h
--------V-62004F-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_DISPFILE" - DISPLAY STORED IMAGE
AX = 004Fh
ES:BX -> ASCIZ filename
CX = image width in pixels (> 0)
DX = image format
0000h Fastgraph standard pixel run format
0001h packed pixel run format
Notes: this call is ignored in text modes
the image is displayed with its lower left corner at the current
graphics cursor position
SeeAlso: AX=004Dh,AX=004Eh,AX=0050h,AX=0060h
--------V-620050-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_PATTERN" - SPECIFY DISPLAY PATTERN FOR COLOR
AX = 0050h
BX = index of pattern to define
CX = number of predefined display pattern
Notes: when displaying a pixel run map, Fastgraph uses the pattern associated
with each color index rather than displaying the actual color
this call has no effect in text and 256-color graphics modes
SeeAlso: AX=004Dh,AX=004Eh,AX=004Fh
--------V-620051-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_DRAWMASK" - DISPLAY IMAGE (MASKING MAP)
AX = 0051h
ES:BX -> array containing image stores as a masking map (see below)
CX = number of pixel runs in masking map
DX = width of masking map in pixels
Notes: this call is ignored in text modes and in native EGA and VGA graphics
modes
the image is drawn with its lower left corner at the current graphics
cursor position
SeeAlso: AX=0052h
Format of masking map:
Offset Size Description
00h BYTE length of first "protect" run (pixels remain unchanged)
01h BYTE length of first "zero" run (pixels set to background color)
02h BYTE length of second "protect" run
03h BYTE length of second "zero" run
...
--------V-620052-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_CLIPMASK" - DISPLAY CLIPPED IMAGE (MASKING MAP)
AX = 0052h
ES:BX -> array containing image stored as a masking map (see AX=0051h)
CX = number of pixel runs in masking map
DX = width of masking map in pixels
Notes: this call is ignored in text modes and in native EGA and VGA graphics
modes
the image is drawn with its lower left corner at the current graphics
cursor position
SeeAlso: AX=0029h,AX=004Ah,AX=0051h,AX=0053h,AX=0054h
--------V-620053-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_REVMASK" - DISPLAY REVERSED IMAGE (MASKING MAP)
AX = 0053h
ES:BX -> array containing image stored as a masking map (see AX=0051h)
CX = number of pixel runs in masking map
DX = width of masking map in pixels
Notes: this call is ignored in text modes and in native EGA and VGA graphics
modes
the image is drawn with its lower left corner at the current graphics
cursor position
SeeAlso: AX=0052h,AX=0054h
--------V-620054-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_FLIPMASK" - DISPLAY INV CLIPPED IMAGE (MASKMAP)
AX = 0054h
ES:BX -> array containing image stored as a masking map (see AX=0051h)
CX = number of pixel runs in masking map
DX = width of masking map in pixels
Notes: this call is ignored in text modes and in native EGA and VGA graphics
modes
the image is drawn with its lower left corner at the current graphics
cursor position
SeeAlso: AX=0029h,AX=0052h,AX=0053h
--------V-620055-----------------------------
INT 62 - FGDRIVER v1.10 - UNUSED
AX = 0055h to 0059h
Return: AX = 0000h
--------V-62005A-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_SAVE" - COPY REGION FROM VISIBLE TO HIDDEN PAGE
AX = 005Ah
BX = left edge column
CX = right edge column
DX = top edge row
SI = bottom edge row
Note: left and right edges are adjusted to byte boundaries if necessary
SeeAlso: AX=005Bh
--------V-62005B-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_RESTORE" - COPY REGION FROM HIDDEN TO VIS PAGE
AX = 005Bh
BX = left edge column
CX = right edge column
DX = top edge row
SI = bottom edge row
Note: left and right edges are adjusted to byte boundaries if necessary
SeeAlso: AX=005Ah,AX=0064h
--------V-62005C-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_TRANSFER" - COPY REGION
AX = 005Ch
CX = source video page
DX = destination video page
ES:BX -> copy record (see below)
Note: source and destination regions must not overlap if on the same page
SeeAlso: AX=005Dh,AX=005Fh
Format of copy record:
Offset Size Description
00h WORD left edge column of source region
02h WORD right edge column of source region
04h WORD top edge row of source region
06h WORD bottom edge row of source region
08h WORD left edge of destination
0Ah WORD bottom edge of destination
--------V-62005D-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_TCXFER" - COPY REGION EXCLUDING TRANSPARENT
AX = 005Dh
CX = source video page
DX = destination video page
ES:BX -> copy record (see AX=005Ch)
Notes: pixels which are in any of the colors defined as transparent with
AX=005Eh are left unchanged in the destination region
source and destination regions must not overlap if on the same page
this call is ignored in text modes
SeeAlso: AX=005Ch,AX=005Eh
--------V-62005E-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_TCMASK" - SET TRANSPARENT COLORS
AX = 005Eh
BX = colors to consider transparent (bit 0 = color 0, etc)
Notes: this call is ignored in text modes
the specified colors are considered transparent by AX=005Dh
SeeAlso: AX=005Dh
--------V-62005F-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_COPYPAGE" - TRANSFER VIDEO PAGE CONTENTS
AX = 005Fh
BX = source page number (0000h-003Fh)
CX = destination page number (0000h-003Fh)
Note: if both source and destination pages are logical pages, they must both
be located in the same type (conventional, EMS, XMS) of memory
SeeAlso: AX=005Ch,AX=009Dh,AX=009Eh,AX=009Fh
--------V-620060-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_DISPPCX" - DISPLAY PCX FILE
AX = 0060h
ES:BX -> ASCIZ filename
CX = flags
bit 0: use current palette rather than PCX file's palette
bits 1-15 reserved (0)
Return: AX = status
0000h success
0001h file not found
0002h file is not a valid PCX file
Notes: this call is ignored in text modes and Hercules low-resolution graphics
the image is displayed with its upper left corner at the current
graphics cursor position
SeeAlso: AX=004Dh,AX=004Eh,AX=004Fh,AX=0061h
--------V-620061-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_MAKEPCX" - CREATE PCX FILE FROM SCREEN WINDOW
AX = 0061h
BX = left edge in screen space units
CX = right edge in screen space units
DX = top edge in screen space units
SI = bottom edge in screen space units
ES:DI -> ASCIZ filename of PCX file to create
Return: AX = status
0000h successful
0001h file not created
Notes: the PCX file is created from the specified region of the active video
page; the left and right edges are adjusted to a byte boundary if
necessary
if the specified file already exists, it is overwritten
this call is ignored in text and Hercules low-resolution graphics modes
SeeAlso: AX=0060h
--------V-620062-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_IMAGESIZ" - DETERMINE IMAGE STORAGE REQUIREMENT
AX = 0062h
BX = image width in pixels
CX = image height in pixels
Return: DX:AX = size in bytes of mode-specific bitmap for current video mode
SeeAlso: AX=0048h
--------V-620063-----------------------------
INT 62 - FGDRIVER v1.10 - UNUSED
AX = 0063h
Return: AX = 0000h
--------V-620064-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_FADEIN" - FADE IN HIDDEN PAGE
AX = 0064h
BX = delay (0000h = fastest possible fade-in)
Notes: the current hidden page is copied to the current visible page in small
random sections to produce a fade-in effect
this call is ignored in text modes
SeeAlso: AX=005Bh,AX=0065h
--------V-620065-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_FADEOUT" - FADE OUT TO CURRENT COLOR
AX = 0065h
BX = delay (0000h = fastest possible fade-out)
Notes: this call is ignored in text modes
the current visible page is filled with pixels of the current color in
small random sections to give a fade-out effect
SeeAlso: AX=0064h
--------V-620066-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_PAN" - SET SCREEN ORIGIN
AX = 0066h
BX = new column for screen origin
CX = new row for screen origin
SeeAlso: AX=0067h
--------V-620067-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_SCROLL" - VERTICALLY SCROLL SCREEN REGION
AX = 0067h
BX = left edge column
CX = right edge column
DX = top edge row
SI = bottom edge row
DI = number of pixels by which to scroll (positive scrolls up,
negative scrolls down)
ES = type of scroll
0000h circular (rows scrolled off are copied to vacated rows)
else vacated rows are filled with the current color
Notes: in graphics modes, the left and right edges are adjusted to byte
boundaries if necessary
circular scrolling uses part of the hidden page as a workspace
SeeAlso: AX=0066h
--------V-620068-----------------------------
INT 62 - FGDRIVER v1.10 - UNUSED
AX = 0068h to 006Ch
Return: AX = 0000h
--------V-62006D-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_WAITKEY" - FLUSH KEYBOARD BUFFER AND AWAIT KEY
AX = 006Dh
Return: after next key pressed
SeeAlso: AX=006Eh,AX=006Fh,AX=0096h
--------V-62006E-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_GETKEY" - GET NEXT KEYSTROKE
AX = 006Eh
ES:BX -> variable pointer record (see below)
Return: (after next keystroke if no typeahead) variables updated
SeeAlso: AX=006Dh,AX=006Fh,AX=0070h
Format of variable pointer record:
Offset Size Description
00h WORD segment of BYTE buffer for ASCII keycode
02h WORD offset of BYTE buffer for ASCII keycode
04h WORD segment of BYTE buffer for extended keycode
06h WORD offset of BYTE buffer for extended keycode
--------V-62006F-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_INTKEY" - GET KEYSTROKE, NO WAIT
AX = 006Fh
ES:BX -> variable pointer record (see below)
Return: variables updated
Note: if the keyboard buffer is empty, both the ASCII and extended keycodes
are set to 00h
SeeAlso: AX=006Dh,AX=006Eh,AX=0070h,AX=0079h
Format of variable pointer record:
Offset Size Description
00h WORD segment of BYTE buffer for ASCII keycode
02h WORD offset of BYTE buffer for ASCII keycode
04h WORD segment of BYTE buffer for extended keycode
06h WORD offset of BYTE buffer for extended keycode
--------V-620070-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_CAPSLOCK" - GET STATE OF CAPSLOCK KEY
AX = 0070h
Return: AX = CapsLock state (0000h off, 0001h on)
SeeAlso: AX=006Eh,AX=006Fh,AX=0071h,AX=0072h,AX=0074h
--------V-620071-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_SETCAPS" - SET STATE OF CAPSLOCK KEY
AX = 0071h
BX = new state (0000h off, 0001h on)
SeeAlso: AX=0070h,AX=0073h
--------V-620072-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_NUMLOCK" - GET STATE OF NUMLOCK KEY
AX = 0072h
Return: AX = NumLock state (0000h off, 0001h on)
SeeAlso: AX=0070h,AX=0074h
--------V-620073-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_SETNUM" - SET STATE OF NUMLOCK KEY
AX = 0073h
BX = new state (0000h off, 0001h on)
SeeAlso: AX=0071h,AX=0072h
--------V-620074-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_SCRLOCK" - GET STATE OF SCROLL LOCK KEY
AX = 0074h
Return: AX = ScrollLock state (0000h off, 0001h on)
SeeAlso: AX=0070h,AX=0072h
--------V-620075-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_INITJOY" - INITIALIZE JOYSTICK USE
AX = 0075h
BX = joystick number (0001h or 0002h)
Return: AX = status
0000h successful
FFFFh joystick not connected or no game port
Note: Fastgraph assumes that the requested joystick is centered at the time
this function is called
SeeAlso: AX=0076h,AX=0077h,AX=0078h,AX=0079h
--------V-620076-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_GETXJOY" - GET HORIZONTAL POSITION OF JOYSTICK
AX = 0076h
BX = joystick number (0001h or 0002h)
Return: AX = horizontal position of joystick
FFFFh if joystick uninitialized or not present
Notes: the actual coordinates are processor- and joystick-dependent
you must call AX=0075h before this function
SeeAlso: AX=0075h,AX=0077h,AX=0078h
--------V-620077-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_GETYJOY" - GET VERTICAL POSITION OF JOYSTICK
AX = 0077h
BX = joystick number (0001h or 0002h)
Return: AX = vertical position of joystick
FFFFh if joystick uninitialized or not present
Notes: the actual coordinates are processor- and joystick-dependent
you must call AX=0075h before this function
SeeAlso: AX=0075h,AX=0076h,AX=0078h
--------V-620078-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_BUTTON" - GET JOYSTICK BUTTON STATE
AX = 0078h
BX = joystick number (0001h or 0002h)
Return: AX = button states
bit 0: top button pressed
bit 1: bottom button pressed
SeeAlso: AX=0075h,AX=0076h,AX=0077h,AX=0079h
--------V-620079-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_INTJOY" - GET KEYCODES CORRESP TO JOYSTICK POS
AX = 0079h
CX = joystick number (0001h or 0002h)
ES:BX -> variable pointer record (see below)
Notes: if the indicated joystick has not been initialized with AX=0075h, both
the button code and joystick position will be set to 00h
if either button is pressed, a button code of 0Dh is returned;
otherwise, a button code of 00h is returned
SeeAlso: AX=006Fh,AX=0075h,AX=0078h
Format of variable pointer record:
Offset Size Description
00h WORD segment of BYTE buffer for button code
02h WORD offset of BYTE buffer for button code
04h WORD segment of BYTE buffer for joystick position
06h WORD offset of BYTE buffer for joystick position
--------V-62007A-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_MOUSEINI" - INITIALIZE MOUSE SUPPORT
AX = 007Ah
Return: AX = status
0002h two-button mouse
0003h three-button mouse
FFFFh initialization failed
Note: after this call, the mouse cursor is invisible
SeeAlso: AX=007Bh,AX=007Ch,AX=007Eh,AX=0080h,INT 33/AX=0000h
--------V-62007B-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_MOUSEVIS" - SET MOUSE CURSOR VISIBILITY
AX = 007Bh
BX = new state (0000h invisible, 0001h visible)
SeeAlso: AX=007Ah,AX=007Eh,INT 33/AX=0001h,INT 33/AX=0002h
--------V-62007C-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_MOUSEBUT" - GET MOUSE BUTTON PRESS/RELEASE CNTS
AX = 007Ch
CX = mouse button (1 = left press, 2 = right press, 3 = middle press,
-1=left release, -2=right release, -3=middle release)
ES:BX -> variable pointer record (see below)
Return: variables updated
Note: returns the count of presses or releases since the last call to this
function; if the count is zero, row and col will also be zero
SeeAlso: AX=007Ah,INT 33/AX=0005h,INT 33/AX=0006h
Format of variable pointer record:
Offset Size Description
00h WORD segment of WORD buffer for press/release count
02h WORD offset of WORD buffer for press/release count
04h WORD segment of WORD buffer for screen space col of last press/rls
06h WORD offset of WORD buffer for screen space col of last press/rels
08h WORD segment of WORD buffer for screen space row of last press/rls
0Ah WORD offset of WORD buffer for screen space row of last press/rls
--------V-62007D-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_MOUSEPOS" - GET CURRENT MOUSE POSITION
AX = 007Dh
ES:BX -> variable pointer record (see below)
SeeAlso: AX=007Ah,AX=0081h
Format of variable pointer record:
Offset Size Description
00h WORD segment of WORD buffer for mouse column
02h WORD offset of WORD buffer for mouse column
04h WORD segment of WORD buffer for mouse row
06h WORD offset of WORD buffer for mouse row
08h WORD segment of WORD buffer for button status
0Ah WORD offset of WORD buffer for button status
Note: button status: bit 0 = left button, bit 1 = right, bit 2 = middle
--------V-62007E-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_MOUSECUR" - SPECIFY TEXT-MODE MOUSE CURSOR
AX = 007Eh
BX = screen mask
CX = cursor mask
Note: this call is ignored in graphics modes
SeeAlso: AX=007Ah,AX=007Fh,INT 33/AX=000Ah
--------V-62007F-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_MOUSEPTR" - SPECIFY GRAPH-MODE MOUSE CURSOR
AX = 007Fh
ES:BX -> masks (16-byte screen mask followed by 16-byte cursor mask)
CX = X offset of hot spot from upper left corner
DX = Y offset of hot spot from upper left corner
Note: this call is ignored in text modes
SeeAlso: AX=007Ah,AX=007Eh,INT 33/AX=0009h
--------V-620080-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_MOUSELIM" - SPECIFY MOUSE CURSOR LIMITS
AX = 0080h
BX = left-most position allowed for mouse cursor
CX = right-most position allowed
DX = top-most position allowed
SI = bottom-most position allowed
SeeAlso: AX=007Ah,AX=0081h,INT 33/AX=0007h,INT 33/AX=0008h
--------V-620081-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_MOUSEMOV" - SET MOUSE CURSOR POSITION
AX = 0081h
BX = new column
CX = new row
Note: will not move the mouse cursor outside the bounding box specified with
AX=0080h
SeeAlso: AX=007Ah,AX=007Dh,AX=0080h,INT 33/AX=0004h
--------V-620082-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_MOUSESPD" - SET MOUSE CURSOR SPEED
AX = 0082h
BX = horizontal mickeys per eight pixels of movement (default 16)
CX = vertical mickeys per eight pixels of movement (default 16)
SeeAlso: INT 33/AX=000Fh,INT 33/AX=001Ah
--------V-620083-----------------------------
INT 62 - FGDRIVER v1.10 - UNUSED
AX = 0083h to 0087h
Return: AX = 0000h
--------V-620088-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_SOUND" - MAKE SOUND FOR SPECIFIED DURATION
AX = 0088h
BX = frequency in Hertz (18-32767)
CX = duration in clock ticks (0000h or negative for continuous sound)
Note: ignored if asynchronous sound (AX=0089h,AX=008Bh,AX=008Dh) is in
progress
SeeAlso: AX=0089h,AX=008Ah,AX=008Eh,AX=0090h
--------V-620089-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_SOUNDS" - PLAY SOUNDS IN BACKGROUND
AX = 0089h
CX = number of times to cycle through sound list
ES:BX -> sounds array (see below)
Note: ignored if asynchronous sound (AX=0089h,AX=008Bh,AX=008Dh) is in
progress
SeeAlso: AX=0088h,AX=008Eh,AX=008Fh
Format of sounds array element:
Offset Size Description
00h WORD frequency of sound in Hertz (0000h ends array)
02h WORD duration of sound in clock ticks
--------V-62008A-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_VOICE" - START SOUND
AX = 008Ah
BX = channel on TI sound chip
1-3 = channels 1-3, 4 = channel 4 with periodic noise,
5 = channel 4 with white noise
CX = frequency in Hz (18-32767 for channels 1-3; 0=512 Hz, 1=1024 Hz,
2=2048 Hz for channels 4 and 5)
DX = volume
SI = duration in clock ticks (continuous if <= 0)
Notes: FGDRIVER is the external video driver for the shareware
Fastgraph/Light by Ted Gruber Software
only available on PCjr and Tandy 1000
SeeAlso: AX=0088h,AX=008Bh,AX=008Ch
--------V-62008B-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_VOICES" - PLAY SOUNDS IN BACKGROUND
AX = 008Bh
ES:BX -> tone array (see below)
CX = number of times to repeat tone array
Notes: FGDRIVER is the external video driver for the shareware
Fastgraph/Light by Ted Gruber Software
only available on PCjr and Tandy 1000
SeeAlso: AX=008Ah,AX=008Dh,AX=008Eh,AX=008Fh,AX=0091h
Format of tone array element:
Offset Size Description
00h WORD channel number (0000h terminates array)
02h WORD frequency
04h WORD volume
06h WORD duration in 1/72.8 seconds
--------V-62008C-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_MUSIC" - PLAY SERIES OF NOTES
AX = 008Ch
ES:BX -> '$'-terminated music string in BASIC PLAY format
Return: after music completed
Note: ignored if asynchronous sound (AX=0089h,AX=008Bh,AX=008Dh) is in
progress
SeeAlso: AX=008Ah,AX=008Dh
--------V-62008D-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_MUSICB" - PLAY SERIES OF NOTES IN BACKGROUND
AX = 008Dh
CX = number of repetitions (negative = continuous play)
ES:BX -> '$'-terminated music string in BASIC PLAY format
Note: ignored if asynchronous sound (AX=0089h,AX=008Bh,AX=008Dh) is in
progress
SeeAlso: AX=008Bh,AX=008Ch,AX=008Eh,AX=008Fh,AX=0091h
--------V-62008E-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_HUSH" - STOP ASYNCHRONOUS SOUND IMMEDIATELY
AX = 008Eh
Note: immediately stops any sounds started with "FG_MUSICB", "FG_SOUNDS",
or AX=008Bh; ignored if no asynchronous sound is playing
SeeAlso: AX=0088h,AX=008Bh,AX=008Fh,AX=0090h,AX=0091h
--------V-62008F-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_HUSHNEXT" - STOP ASYNCHRONOUS SOUND
AX = 008Fh
Note: stops any sounds started with "FG_MUSICB", "FG_SOUNDS", or AX=008Bh
after the current repetition completes; ignored unless asynchronous
sound is continuous
SeeAlso: AX=008Bh,AX=008Eh,AX=0090h
--------V-620090-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_QUIET" - STOP CONTINUOUS SYNCHRONOUS SOUND
AX = 0090h
Note: this call has no effect if there is no continuous sound playing
SeeAlso: AX=008Eh,AX=008Fh,AX=0091h
--------V-620091-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_PLAYING" - DETERMINE WHETHER ASYNC SOUND ACTIVE
AX = 0091h
Return: AX = sound state (0 = no asynchronous sound, 1 = async sound playing)
SeeAlso: AX=008Bh,AX=008Dh,AX=0090h
--------V-620092-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_RESUME" - RESTART ASYNCHRONOUS SOUND
AX = 0092h
SeeAlso: AX=008Eh,AX=008Fh,AX=0090h
--------V-620093-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_SUSPEND" - TEMPORARILY STOP ASYNCHRONOUS SOUND
AX = 0093h
Notes: this call has no effect if there is no asynchronous sound in progress
the program must not exit while sound is suspended
SeeAlso: AX=0092h
--------V-620094-----------------------------
INT 62 - FGDRIVER v1.10 - UNUSED
AX = 0094h to 0095h
Return: AX = 0000h
--------V-620096-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_WAITFOR" - DELAY FOR SPECIFIED DURATION
AX = 0096h
BX = duration in clock ticks
Return: after delay elapses
SeeAlso: AX=006Dh,AX=0097h,INT 1A/AX=FF01h
--------V-620097-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_STALL" - PAUSE FOR SPECIFIED DURATION
AX = 0097h
BX = duration in processor-dependent delay units (see AX=0098h)
Return: after delay elapses
SeeAlso: AX=0096h,AX=0098h,INT 2F/AX=1224h
--------V-620098-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_MEASURE" - GET DELAY UNITS PER CLOCK TICK
AX = 0098h
Return: AX = delay units per clock tick (processor-dependent)
Note: delay units are used by "FG_STALL" (AX=0097h)
SeeAlso: AX=0097h
--------V-620099-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_GETCLOCK" - GET CLOCK TICKS SINCE MIDNIGHT
AX = 0099h
Return: DX:AX = number of clock ticks since midnight
Note: FGDRIVER is the external video driver for the shareware
Fastgraph/Light by Ted Gruber Software
--------V-62009A-----------------------------
INT 62 - FGDRIVER v1.10 - UNUSED
AX = 009Ah
Return: AX = 0000h
--------V-62009B-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_MEMAVAIL" - QUERY AMOUNT OF FREE MEMORY
AX = 009Bh
Return: DX:AX = number of bytes of conventional memory available
SeeAlso: AX=009Dh
--------V-62009C-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_SETFUNC" - SET LOGICAL OPERATION FOR VIDEO OPS
AX = 009Ch
BX = operation
0000h replacement
0001h AND
0002h OR
0003h XOR
Note: only available in native EGA/VGA graphics mode (0Dh to 12h)
--------V-62009D-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_ALLOCCMS" - CREATE LOGICAL VIDEO PAGE (CONVMEM)
AX = 009Dh
BX = page number (0001h-003Fh)
Return: AX = status
0000h successful
FFFCh insufficient memory
FFFDh page already created, or exists as physical or virtual page
FFFEh invalid page number
Note: the only operation which is allowed on logical pages is AX=005Fh
SeeAlso: AX=0043h,AX=005Fh,AX=009Bh,AX=009Eh,AX=009Fh
--------V-62009E-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_ALLOCEMS" - CREATE LOGICAL VIDEO PAGE (EMS)
AX = 009Eh
BX = page number (0001h-003Fh)
Return: AX = status
0000h successful
FFFCh insufficient memory
FFFDh page already created, or exists as physical or virtual page
FFFEh invalid page number
FFFFh memory manager not initialized
Notes: must first call AX=00A0h
the only operation which is allowed on logical pages is AX=005Fh
SeeAlso: AX=0043h,AX=005Fh,AX=009Dh,AX=009Fh,AX=00A0h
--------V-62009F-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_ALLOCXMS" - CREATE LOGICAL VIDEO PAGE (XMS)
AX = 009Fh
BX = page number (0001h-003Fh)
Return: AX = status (see AX=009Eh)
Notes: must first call AX=00A1h
the only operation which is allowed on logical pages is AX=005Fh
SeeAlso: AX=0043h,AX=005Fh,AX=009Dh,AX=009Eh,AX=00A1h
--------V-6200A0-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_INITEMS" - INITIALIZE EXPANDED MEMORY USE
AX = 00A0h
Return: AX = status
0000h successful
FFFFh expanded memory manager inaccessible or not installed
SeeAlso: AX=009Eh,AX=00A1h
--------V-6200A1-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_INITXMS" - INITIALIZE EXTENDED MEMORY USE
AX = 00A1h
Return: AX = status
0000h successful
FFFFh extended memory manager inaccessible or not installed
SeeAlso: AX=009Fh,AX=00A0h
--------V-6200A2-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_BOX" - DRAW UNFILLED RECTANGLE
AX = 00A2h
BX = left column
CX = right column
DX = top row
SI = bottom row
Notes: FGDRIVER is the external video driver for the shareware
Fastgraph/Light by Ted Gruber Software
the rectangle is drawn in screen space, respecting the clipping region,
width edges of the width specified with AX=00A3h (default = 1 is set
by "FG_SETMODE")
this function has no effect in text modes
SeeAlso: AX=002Bh,AX=002Ch,AX=002Eh,AX=0030h,AX=00A3h
--------V-6200A3-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_BOXDEPTH" - SET RECTANGLE BORDER WIDTH
AX = 00A3h
BX = width of left and right edges in pixels (> 0)
CX = width of top and bottom edges in pixels (> 0)
SeeAlso: AX=00A2h
--------V-6200A4-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_GETDACS" - GET VIDEO DAC CONTENTS
AX = 00A4h
CX = number of DAC registers to return (0001h to 0100h)
DX = starting DAC register number (0000h to 00FFh)
ES:BX -> buffer for DAC red/green/blue triples
Note: the register number wraps back to zero after FFh
SeeAlso: AX=001Ch,AX=00A5h
--------V-6200A5-----------------------------
INT 62 u - FGDRIVER v1.10 - "FG_SETDACS" - SET VIDEO DAC CONTENTS
AX = 00A5h
CX = number of DAC registers to set (0001h to 0100h)
DX = starting DAC register number (0000h to 00FFh)
ES:BX -> buffer containing DAC red/green/blue triples
Notes: the register number wraps back to zero after FFh
this call has no effect in text modes or graphics modes below 11h
SeeAlso: AX=001Bh,AX=00A4h
--------T-6201-------------------------------
INT 62 - Cswitch - GIVE UP REST OF TIME-SLICE
AH = 01h
Program: Cswitch is a set of multitasking functions by Herb Rose
SeeAlso: AH=05h,AH=06h,INT 15/AX=1000h
--------T-6202-------------------------------
INT 62 - Cswitch - WAIT FOR SEMAPHORE
AH = 02h
DX = semaphore number (0-63)
Return: AX = FFFFh bad semaphore number
else success
SeeAlso: AH=03h,AH=04h
--------T-6203-------------------------------
INT 62 - Cswitch - CHECK SEMAPHORE
AH = 03h
DX = semaphore number (0-63)
Return: AX = FFFFh not owned
else owned
SeeAlso: AH=02h,AH=04h
--------T-6204-------------------------------
INT 62 - Cswitch - TRIGGER SEMAPHORE
AH = 04h
DX = semaphore number (0-63)
Return: AX = FFFFh bad semaphore number
else success
SeeAlso: AH=02h,AH=03h
--------T-6205-------------------------------
INT 62 - Cswitch - SLEEP
AH = 05h
BX = seconds to sleep
SeeAlso: AH=01h,AH=06h,AH=08h"Cswitch"
--------T-6206-------------------------------
INT 62 - Cswitch - SUSPEND
AH = 06h
SeeAlso: AH=05h,AH=08h"Cswitch"
--------T-6207-------------------------------
INT 62 - Cswitch - SPAWN
AH = 07h
ES:BX -> function address to start executing at
CX = priority (1-10)
Return: AX = FFFDh no free memory control blocks
= FFFEh no free task control blocks
= FFFFh not enough memory to create new task stack
= >0 the tcb number of the new task, indicating no error
SeeAlso: AH=0Fh,AH=10h
--------T-6208-------------------------------
INT 62 - Cswitch - WAKE UP TASK
AH = 08h
BX = tcb identifier
SeeAlso: AH=05h,AH=06h
----------6208--CXFFFE-----------------------
INT 62 - MS SQL Server/Sybase DBLIBRARY interface - UNINSTALL/GET PSP ADDR
AH = 08h
CX = FFFEh
DX = FFFFh
Return: AX = PSP address of resident DBLIBRARY
Note: this call does not free the memory allocated to the TSR; the calling
code must do the deallocation.
SeeAlso: INT 62"DBLIBRARY"
--------T-6209-------------------------------
INT 62 - Cswitch - SET PRIORITY
AH = 09h
BX = new base priority (1-10)
Note: the lower the priority is numerically, the more often the task will run
--------T-620A-------------------------------
INT 62 - Cswitch - TEST MESSAGE QUEUE
AH = 0Ah
DX = queue number (0-63)
Return: AX = FFFFh bad queue number
= 0000h nothing on queue
else number of bytes in first message in queue
SeeAlso: AH=0Bh,AH=0Ch
--------T-620B-------------------------------
INT 62 - Cswitch - SEND MESSAGE
AH = 0Bh
CX = number of bytes to write
DS:SI -> buffer
DX = queue number (0-63)
Return: AX = FFFEh triggered by something arriving, redo the call
= FFFFh bad queue number
= 0000h no message was on queue
else number of bytes in message
SeeAlso: AH=0Ah,AH=0Ch
--------T-620C-------------------------------
INT 62 - Cswitch - READ MESSAGE
AH = 0Ch
CX = number of bytes to read
DS:SI -> buffer
DX = queue number (0-63)
Return: AX = FFFFh bad queue number
else number of bytes transferred
SeeAlso: AH=0Ah,AH=0Bh
--------T-620D-------------------------------
INT 62 - Cswitch - DON'T ALLOW TASK TO BE SWAPPED OUT
AH = 0Dh
SeeAlso: AH=0Eh
--------T-620E-------------------------------
INT 62 - Cswitch - ALLOW TASK TO BE SWAPPED OUT
AH = 0Eh
SeeAlso: AH=0Dh
--------T-620F-------------------------------
INT 62 - Cswitch - LOAD AND RUN PROGRAM FROM DISK
AH = 0Fh
ES:BX -> command line
CX = priority (1-10)
DX = background flag
= != 0000h allows loading to EMS
Return: AX = 0000h task loader queue is full
= 0001h no error
SeeAlso: AH=07h,AH=10h,AH=13h
--------T-6210-------------------------------
INT 62 - Cswitch - TERMINATE SPAWNED PROGRAM
AH = 10h
SeeAlso: AH=07h,AH=0Fh
--------T-6211-------------------------------
INT 62 - Cswitch - GET TCB INFORMATION
AH = 11h
ES:BX -> a pointer which will be set to the tcb address
Return: AX = tcb indentifier
SeeAlso: AH=12h
--------T-6212-------------------------------
INT 62 - Cswitch - GET TCB ADDRESS
AH = 12h
ES:BX -> a pointer which will be set to the tcb table address
Return: AX = tcb indentifier
SeeAlso: AH=11h
--------T-6213-------------------------------
INT 62 - Cswitch - CHECK STATUS OF PREVIOUS LOAD_TASK
AH = 13h
Return: AX = FFFCh no Memory Control Blocks available
= FFFDh no TCBs available
= FFFEh insufficient memory
= FFFFh cannot open file
= 0000h load in progress (not done yet)
else tcb indentifier
SeeAlso: AH=0Fh
--------R-6247-------------------------------
INT 62 - PC Tools 7 COMMUTE - ???
AH = 47h
AL = subfunction (00h-31h)
???
CF set
Return: ???
--------R-6248-------------------------------
INT 62 - PC Tools 7 COMMUTE - ???
AH = 48h
AL = ???
???
CF set
Return: ???
--------R-6249-------------------------------
INT 62 - PC Tools 7 COMMUTE - ???
AH = 49h
???
CF set
Return: ???
Note: may be the same as AH=4Ch
--------R-624A-------------------------------
INT 62 - PC Tools 7 COMMUTE - ???
AH = 4Ah
AL = subfunction (00h-46h)
???
CF set
Return: ???
--------R-624B--BX1234-----------------------
INT 62 - PC Tools 7 COMMUTE - ???
AH = 4Bh
BX = 1234h
CX = 1234h
ES = ???
CF set
Return: ???
--------R-624C-------------------------------
INT 62 - PC Tools 7 COMMUTE - ???
AH = 4Ch
BL = subfunction
00h ???
02h ???
Return: CF clear if successful
CF set on error
--------R-626262-----------------------------
INT 62 - PC Tools 7 COMMUTE - INSTALLATION CHECK
AX = 6262h
CF set
Return: AX = 0000h
BX = segment of resident code's PSP
--------*-63---------------------------------
INT 63 - reserved for user interrupt
--------d-63---------------------------------
INT 63 - Adaptec and OMTI controllers - DRIVE 0 DATA
Notes: this vector stores the last four bytes of the parameter table for
hard disk 0
SeeAlso: INT 60"Adaptec",INT 61"Adaptec",INT 62"Adaptec",INT 64"Adaptec"
----------63---------------------------------
INT 63 - Oracle SQL Protected Mode Executive - ???
--------d-63---------------------------------
INT 63 - 4+Power FLOPPY CONTROLLER - ORIGINAL INT 13/40
the "4+Power" quad floppy controller BIOS hooks INT 13 (or INT 40 if INT 13
has been moved there) and places the old value here
----------63---------------------------------
INT 63 - Kofax KF9X00 image manipulation card interface
--------Q-63---------------------------------
INT 63 - DESQview/X - SOCKET API
Notes: parameters are passed by patching!! data field immediately following
the entry point, as detailed below; the preferred method for calling
the socket API is via INT 15/AX=DE2Eh
the installation check consists of testing for the string "dvxunix"
(yes, lowercase) at offset 9 from the interrupt handler start
SeeAlso: INT 15/AX=DE2Eh,INT BE"DESQview"
Index: installation check;DESQview/X socket interface
Format of interrupt handler entry:
Offset Size Description
00h 3 BYTEs near jump or short jump + NOP to actual interrupt handler
03h WORD offset from following pointer for initial top of local stack
05h DWORD pointer to argument/stack block (see INT 15/AX=DE2Eh)
09h 7 BYTEs signature "dvxunix"
--------*-64---------------------------------
INT 64 - reserved for user interrupt
--------d-64---------------------------------
INT 64 - Adaptec controllers - DRIVE 1 DATA
Notes: this vector stores the first four bytes of the parameter table for
hard disk 1
these vectors are used by the following Adaptec controllers:
ACB 2370 A/B/C, ACB 2372 A/B/C, ACB 2333 A/B, 2322B-8, 2322B-16
these vectors are NOT used by the following Adaptec controllers:
ACB 2310, ACB 2312, ACB 2320D, ACB 2322D
SeeAlso: INT 60"Adaptec",INT 65"Adaptec",INT 66"Adaptec",INT 67"Adaptec"
----------64---------------------------------
INT 64 - Oracle SQL Protected Mode Executive - ???
--------N-64---------------------------------
INT 64 - Novell NetWare to v2.0a - LOW-LEVEL API
Note: equivalent to INT 7A for NetWare versions through 2.0a only; later
versions do not use this interrupt for IPX/SPX access, instead
getting an entry point from INT 2F/AX=7A00h
SeeAlso: INT 2F/AX=7A00h,INT 7A"Novell"
--------h-64---------------------------------
INT 64 - Data General DG10 - MicroECLIPSE COPROCESSOR INTERFACE
SeeAlso: INT 65"DG10",INT 66"DG10"
--------r-64---------------------------------
INT 64 - Extended Batch Language v3.14+
AH = function
00h to 5Fh chained to previous handler
60h to 6Ch reserved, return immediately
80h to FFh chained to previous handler
6Dh (v4.01+) insert tone in queue
AL = ???
CX = frequency in Hertz
DL = duration in clock ticks
Return: AL = 00h if note stored
= 01h if no room to store
6Eh clear ??? counter/flag
6Fh return counter/flag that AH=6Eh clears
70h ???
AL = ???
71h ???
AL = ???
72h ???
73h insert byte at end of keyboard buffer
AL = byte to insert
Return: AL = 00h if byte inserted
= 01h if no room to store
74h insert byte at front of keyboard buffer
AL = byte to insert
Return: AL = 00h if byte inserted
= 01h if no room to store
75h ???
76h get keyboard "stack" status
AL = 'K' if kbd read will read physical keyboard
'S' if it will read EBL internal keyboard buffer
AH = ???
77h clear internal keyboard buffer
78h ???
AL = ???
79h ???
7Ah ???
AL = ???
7Bh ???
AL = ???
7Ch ???
AL = ???
7Dh ???
AL = ???
7Eh clear buffer for ???
7Fh installation check
Return: CX = version in BCD
DI = segment of ???
BX = segment of next program's PSP???
Program: Extended Batch Language is a batch-file enhancer by Seaware
Notes: the chaining does not check whether the interrupt had been hooked
before, so if you try to chain when the previous vector was
0000h:0000h, you'll be in trouble
functions 72h and 7Ah-7Dh appear to be interfaces to the optional
floating-point and extended function packages
Index: installation check;EBL|installation check;Extended Batch Language
--------d-64---------------------------------
INT 64 - Pdisk by Scott Garfinkle - Overwritten for Hard Drive information
Note: This vector is overwritten by Pdisk to install custom harddrive types.
It can either destroy 4 vectors and take no memory or TSR and take
up some memory.
SeeAlso: INT 65"Pdisk"
--------*-65---------------------------------
INT 65 - reserved for user interrupt
--------d-65---------------------------------
INT 65 - Adaptec controllers - DRIVE 1 DATA
Note: this vector stores the second four bytes of the parameter table for
hard disk 1
SeeAlso: INT 64"Adaptec",INT 66"Adaptec",INT 67"Adaptec"
--------h-65---------------------------------
INT 65 - Data General DG10 - MicroECLIPSE COPROCESSOR INTERFACE
SeeAlso: INT 64"DG10",INT 66"DG10"
--------N-65---------------------------------
INT 65 - FTP Software NDIS-Packet Driver adapter - POST PROCESSING INTERRUPT
--------U-65---------------------------------
INT 65 - SD.COM v6.2
The unregistered version of SD62.COM uses the low byte of this vector to
count the number of invocations, displaying a registration reminder each
time after the 20th use.
--------d-65---------------------------------
INT 65 - Pdisk by Scott Garfinkle - Overwritten for Hard Drive information
SeeAlso: INT 64"Pdisk",INT 66"Pdisk"
--------s-65---------------------------------
INT 65 - Ad Lib SOUND.COM - INTERFACE
SI = function number (see also entries below)
0000h Init
0002h RelTimeStart
0003h SetState
0004h GetState
0005h Flush
0006h SetMode
0007h GetMode
0008h SetRelVolume
0009h SetTempo
000Ah SetTranspose
000Bh GetTranspose
000Ch SetActVoice
000Dh GetActVoice
000Eh PlayNoteDel
000Fh PlayNote
0010h SetTimbre
0011h SetPitch
0012h SetTickBeat
0013h NoteOn
0014h NoteOff
0015h Timbre
0016h SetPitchBend
0017h WaveForm
ES:BX -> arguments
Note: the installation check consists of checking for the signature block
immediately preceding the interrupt handler (see below)
SeeAlso: SI=8000h
Index: installation check;Ad Lib SOUND.COM
Format of signature block:
Offset Size Description
00h WORD version number
02h 19 BYTEs "SOUND-DRIVER-AD-LIB"
15h BYTE 01h
16h BYTE 01h
17h BYTE 00h
--------s-65----SI0000-----------------------
INT 65 - Ad Lib SOUND.COM - INITIALIZE (RESET)
SI = 0000h
--------s-65----SI0003-----------------------
INT 65 - Ad Lib SOUND.COM - SET STATE
SI = 0003h
ES:BX -> WORD state = 0000h disabled
= 0001h enabled
SeeAlso: SI=0004h
--------s-65----SI0004-----------------------
INT 65 - Ad Lib SOUND.COM - GET STATE
SI = 0004h
Return: AX = 0000h all done playing sounds
= else still playing sounds
SeeAlso: SI=0003h
--------s-65----SI0006-----------------------
INT 65 - Ad Lib SOUND.COM - SET MODE
SI = 0006h
ES:BX -> WORD mode = 0000h melodic
= 0001h percussive
SeeAlso: SI=0007h
--------s-65----SI0007-----------------------
INT 65 - Ad Lib SOUND.COM - GET MODE
SI = 0007h
Return: AX = 0000h melodic
= 0001h percussive
SeeAlso: SI=0006h
--------s-65----SI000C-----------------------
INT 65 - Ad Lib SOUND.COM - SET ACTIVE VOICE
SI = 000Ch
ES:BX -> WORD voice = 0000h to 0008h
SeeAlso: SI=000Dh
--------s-65----SI000D-----------------------
INT 65 - Ad Lib SOUND.COM - GET ACTIVE VOICE
SI = 000Dh
Return: AX = voice (0000h to 0008h)
SeeAlso: SI=000Ch
--------s-65----SI8000-----------------------
INT 65 u - Media Vision FM.COM v4.1a+ - GET INTERNAL DATA STRUCTURES
SI = 8000h
Return: DX:AX -> internal data structures
Program: FM.COM is an Ad Lib SOUND.COM-compatible driver for Media Vision's
Pro Audio Spectrum sound boards
SeeAlso: SI=8001h
--------s-65----SI8001-----------------------
INT 65 u - Media Vision FM.COM v4.1a+ - GET VOICE COUNT
SI = 8001h
Return: AX = ???
DX = number of voices??? (09h or 0Bh)
SeeAlso: SI=8000h
--------s-65----SI8002-----------------------
INT 65 - Media Vision FM.COM v4.1a+ - START BACKGROUND FM SOUNDS
SI = 8002h
SeeAlso: SI=8003h
--------s-65----SI8003-----------------------
INT 65 - Media Vision FM.COM v4.1a+ - STOP BACKGROUND FM SOUNDS
SI = 8003h
SeeAlso: SI=8002h
--------s-65----SI8004-----------------------
INT 65 U - Media Vision FM.COM v4.1a+ - GET ???
SI = 8004h
Return: AX = ??? (0280h)
DX = ??? (01A0h)
--------s-65----SI8005-----------------------
INT 65 U - Media Vision FM.COM v4.1a+ - ???
SI = 8005h
???
Return: ???
SeeAlso: SI=8000h
--------S-65---------------------------------
INT 65 U - EZRECV v1.0 - API
AX = function
0000h ???
Return: AX = ??? or FFFFh
0001h ???
Return: AX = status (0000h or 0001h)
0002h ???
Return: AX = status (0000h or 0001h)
0003h set ??? to 0001h
Return: AX = 0000h
0004h ???
Return: AX = ???
Return: BH = COM port being used
BL = speed???
CH = ???
CL = ???
DX = ???
DS = ???
ES = EZRECV data segment
Program: EZRECV is a background Zmodem file receiver by Express Consulting
--------*-66---------------------------------
INT 66 - reserved for user interrupt
--------d-66---------------------------------
INT 66 - Adaptec controllers - DRIVE 1 DATA
Note: this vector stores the third four bytes of the parameter table for
hard disk 1
SeeAlso: INT 64"Adaptec",INT 65"Adaptec",INT 67"Adaptec"
--------h-66---------------------------------
INT 66 - Data General DG10 - MicroECLIPSE COPROCESSOR INTERFACE
SeeAlso: INT 64"DG10"
--------N-66---------------------------------
INT 66 C - Nanosoft, Inc. TurboNET - NETWORK PROCESSING ???
Program: TurboNET is a NetBIOS-based file redirector and server
Note: hooked but not used (IRET) by both redirector and server; called from
server's INT 28 handler
SeeAlso: INT 2F/AX=8100h
--------d-66---------------------------------
INT 66 - Pdisk by Scott Garfinkle - Overwritten for Hard Drive information
SeeAlso: INT 64"Pdisk",INT 67"Pdisk"
--------W-66---------------------------------
INT 66 - Microsoft Windows VITD.386 Virtual Interval Timer
Note: This Windows 3.x Virtual Device Driver implements a virtual timer
which will expire and call INT 66. This timer can be used to
calculate elapsed execution time etc.
--------K-66---------------------------------
INT 66 - Newkey v5.4 - INSTALLATION VECTOR
Return: immediately (IRET)
Program: Newkey is a shareware keyboard macro program by Frank A. Bell
Note: the installation check consists of testing for the signature bytes
FDh FCh FFh FEh at offset 03h in the interrupt handlers segment;
Newkey may use any interrupt from 60h through 67h and will install
on the highest vector in this range which is unused (normally 66h)
BUG: the code obviously intends to use INT F0-FE, INT 70-77, and INT 68-6F
before falling back to INT 60-67, but only uses the last of these
ranges in v5.4
SeeAlso: INT 2F/AX=E300h
Index: installation checks;Newkey|Newkey;installation check
--------F-6601-------------------------------
INT 66 - BitFax Scheduler - SET MODE???
AH = 01h
SeeAlso: AH=02h
--------F-6602-------------------------------
INT 66 - BitFax Scheduler - SET MODE???
AH = 02h
SeeAlso: AH=01h
--------F-6603-------------------------------
INT 66 - BitFax Scheduler - SCHEDULE FAX TRANSMISSIONS
AH = 03h
???
Return: ???
SeeAlso: AH=05h
--------F-6604-------------------------------
INT 66 - BitFax Scheduler - GET STATUS???
AH = 04h
Return: AX = ??? (0000h or 0001h)
DX = BitSched version??? (for versions >= 3.00)
9796h (ver. 3.00)
97E6h (ver. 3.02)
92D0h (ver. 3.04.06)
9510h (ver. 3.06.02)
SeeAlso: AH=06h,AX=3345h,INT 2F/AX=8000h"FaxBIOS"
--------F-6605-------------------------------
INT 66 - BitFax Scheduler - CONVERT FILE AND SEND FAX
AH = 05h
BX:CX -> command block (see below)
???
Return: ???
SeeAlso: AH=03h
Format of command block:
Offset Size Description
00h 18 BYTEs configuration bytes???
12h BYTEs ASCIZ temporary file name to place converted fax
52h BYTEs ASCIZ directory containing BitFax executables
92h BYTEs ASCIZ telephone number
C2h BYTE 00h don't send cover page
01h send cover page
C3h 15 BYTEs configuration bytes???
E2h BYTEs ASCIZ path of BITFAX.TRA file (containing additional
configuration information???)
122h BYTEs configuration bytes???
12Ch BYTE 00h don't send cover page
01h send cover page
12Dh 7 BYTEs configuration bytes???
134h BYTEs ASCIZ path of file to send
174h BYTEs more configuration bytes???
???
--------F-6606-------------------------------
INT 66 - BitFax Scheduler - SET MODE???
AH = 06h
Return: DX = BitSched version??? (same as AH=04h)
SeeAlso: AH=04h
--------s-660688-----------------------------
INT 66 - IBMSND driver - PLAY 8-BIT DIGITIZED SOUND
AX = 0688h
DS:SI -> SNDSTRUC (see below)
Return: ???
Program: The IBMSND driver is part of John W. Ratcliff's
The IBM Digitized Sound Package
Note: the installation check consists of looking for a valid signature
string six bytes prior to the interrupt handler; this string may
be either "KERN" or "MIDI" (in the latter case, call AX=0701h to
determine whether IBMSND is installed)
SeeAlso: AX=068Bh,AX=068Fh,AX=0701h
Format of SNDSTRUC:
Offset Size Description
00h DWORD -> audio data
04h WORD length of audio data in bytes
06h DWORD -> playback status flag
0Ah WORD playback frequency
--------s-660689-----------------------------
INT 66 - IBMSND driver - REPORT SOUND DRIVER STATUS
AX = 0689h
Return: AX = status
0000h no sound playing
0001h sound effect is currently playing
SeeAlso: AX=0688h,AX=068Bh,AX=068Ch
--------s-66068A-----------------------------
INT 66 - IBMSND driver - PREFORMAT SOUND
AX = 068Ah
DS:SI -> SNDSTRUC (see AX=0688h)
Desc: convert audio data into output hardware format
SeeAlso: AX=068Bh
--------s-66068B-----------------------------
INT 66 - IBMSND driver - PLAY PREFORMATTED SOUND
AX = 068Bh
DS:SI -> SNDSTRUC (see AX=0688h)
Return: AX = ???
SeeAlso: AX=0688h,AX=068Ah,AX=068Fh
--------s-66068C-----------------------------
INT 66 - IBMSND driver - REPORT AUDIO DRIVER CAPABILITIES
AX = 068Ch
Return: AX = capabilities (see below)
DX = playback rate if fixed-frequency playback
SeeAlso: AX=0689h,AX=068Dh
Bitfields for capabilities:
bit 0 can play audio in background
bit 1 data is massaged
bit 2 driver plays at fixed frequency, resampling input data to fit
bit 3 driver uses timer interrupt
--------s-66068D-----------------------------
INT 66 - IBMSND driver - REPORT CURRENT SAMPLE ADDRESS
AX = 068Dh
Return: AX = current playback address
Desc: determine what point in the audio data the playback has reached, for
synchronization with video or animation effects
Notes: this function applies to background playback only
the reported address may be an approximation rather than the exact
address
SeeAlso: AX=068Ch,AX=0691h
--------s-66068E-----------------------------
INT 66 - IBMSND driver - SET CALLBACK ADDRESS
AX = 068Eh
BX:DX -> callback function
0000h:0000h to disable callback
DS = value to load into DS when calling the callback function
Desc: specify the function to be called when playback of a sound effect is
completed
Note: the callback function will typically be called during a hardware
interrupt, so all the usual precautions should be taken except for
preserving registers
SeeAlso: AX=0691h
--------s-66068F-----------------------------
INT 66 - IBMSND driver - STOP CURRENT SOUND
AX = 068Fh
Desc: cause any currently-playing sound effect to be terminated
SeeAlso: AX=0688h,AX=068Bh
--------s-660690-----------------------------
INT 66 - IBMSND driver - "SetAudioHardware" SET UP HARDWARE INFO [obsolete]
AX = 0690h
Note: this function is no longer implemented
--------s-660691-----------------------------
INT 66 - IBMSND driver - REPORT CALLBACK ADDRESS
AX = 0691h
Return: AX:DX -> current callback function
BX = original caller's DS register
Program: The IBMSND driver is part of John W. Ratcliff's
The IBM Digitized Sound Package
SeeAlso: AX=068Eh
--------s-660701-----------------------------
INT 66 - IBM Digitized Sound Package MIDI driver - GET DIGITIZED SOUND CAPABIL
AX = 0701h
Return: AX = digitized sound capabilities
0000h if digitized sound driver (functions 06xxh) not available
Note: the installation check for the MIDI driver is to test for the signature
"MIDI" six bytes before the interrupt handler
SeeAlso: AX=0688h
--------F-663345-----------------------------
INT 66 - BitFax Scheduler - REMOVE TSR FROM MEMORY
AX = 3345h
Return: AX = FFFFh error removing TSR
Note: the installation check consists of checking for the signature
"BitFax Scheduler" beginning two bytes past the interrupt handler
SeeAlso: AH=04h,INT 2F/AH=2Ah,INT 2F/AX=CB00h
Index: installation check;BitFax Scheduler
--------t-66FFFBBXFFFB-----------------------
INT 66 - MicroHelp Stay-Res Plus - ???
AX = FFFBh
BX = FFFBh
???
Return: ???
SeeAlso: AX=FFFEh,INT 2D"AMIS"
--------t-66FFFEBXFFFE-----------------------
INT 66 - MicroHelp Stay-Res/Stay-Res Plus - UNINSTALL
AX = FFFEh
BX = FFFEh
Return: only if unsuccessful
Notes: installation check is for the interrupt handler to begin with the bytes
FBh 9Ch or 9Ch FAh, and the program name (not case-sensitive) to
appear at offset 0005h (older versions) or the offset returned by
AX=FFFFh/BX=FFF0h in the interrupt handler segment.
Programs which use Stay-Res include ThesPlus (program name "THESPLUS")
and Personal Calendar (program name "CAL") by Paul Mun~oz-Colman.
SeeAlso: AX=FFFBh,AX=FFFFh,INT 2D"AMIS"
Index: installation check;MicroHelp Stay-Res|installation check;ThesPlus
Index: installation check;Personal Calendar|installation check;CAL
--------t-66FFFFBXFFF0-----------------------
INT 66 - MicroHelp Stay-Res Plus - FIND PROGRAM NAME
AX = FFFFh
BX = FFF0h
Return: DI = offset of program name in interrupt handler segment
SeeAlso: AX=FFFBh,AX=FFFEh,INT 2D"AMIS"
---------------------------------------------